私はthis referenceから働いており、ユーザーがFacebook経由で自分のサイトにログインできるようにOAuthプロトコルを実装しようとしています。しかし、Facebookのドキュメントはかなりひどく、いくつかの重要な部分では不明です。期限切れのFacebookアクセストークンはどのように更新しますか?
ユーザ認証(
https://facebook.com/dialog/oauth?client_id=...&redirect_uri=...
にユーザーをリダイレクトし、redirect_uri
ページがcode
バックと呼ばれることを期待する):これは、認証が3つの手順を取ることを言います。よく働く!
アプリの承認(Facebookなどで処理)。よく働く!
アプリの認証(コールバック]ページで、あなたが得ると
https://graph.facebook.com/oauth/access_token?client_id=...&redirect_uri=...&client_secret=...&code=...
を呼び出すcode
をつかむ。レスポンスのボディは、私たちがものを行う必要がありaccess_token
含まれます)
は私が理解しaccess_token
を持ちます、私はAPIなどを呼び出すことができます。しかし、期限が切れるとどうなりますか?私は新しいものを手に入れることができましたが、この時点では後で多くのHTTP要求が発生し、最初に取得したのはです。 code
をaccess_token
の横に並べて保存する必要がありますか?または、ユーザーに再度ログインするように伝える必要があるので、新しいcode
を取得して新しいaccess_token
を取得しますか?
ここで重要な部分がありませんか? offline_access
トークンは必要ありません。ユーザーの操作に応じてデータをポーリングするためです。
だから、すべてのページの読み込み時に再認証する必要があると言っていますか?私のサーバーへのリクエスト数を倍増させませんか? –
access_tokenが期限切れになったときに再認証する必要があります。 access_tokenを取得した応答には、access_tokenが期限切れになるまでの秒数であるexpiresパラメータも含まれています。あなたはトークンが発行されたときを知っているので、秒数に基づいて期限が切れているかどうかを確認するだけです。それがあれば、新しいものを入手してください。そうでなければ、それを使い続けてください。 – Owen
ああ、大丈夫。幸いにも、これは私が以前に来た結論です。トークンの有効期限が切れたときに、OAuthプロシージャの先頭にリダイレクトを挿入するだけです。 –