1

Facebookサーバー側のログインフローを使用して、60日間有効な長期間有効なアクセストークンを取得します。ユーザーのアカウントに常にアクセスする必要があるため(つまり、常に有効なアクセストークンが必要です)、トークンの有効期限が近づくと、ユーザーにアプリケーションへのアクセスを再確認するように依頼します。問題は、トークンの有効期限がまだ切れていない場合、Facebookは有効性が延長されていないまったく同じトークンを返すことです。

たとえば、発行されたばかりのトークンは60日間有効です。3日以内に、ユーザーは私のアプリケーションへのアクセスを再確認しますが、Facebookは同じトークンを返します。これは57日間のみ有効です。確認のたびに新しいもの(有効期間60日)を入手したいと思います。

Stack Overflowでは、Facebookトークンの有効性についていくつかの質問がありますが、いずれもこの問題について説明していません。

前もって感謝します。

4

1 に答える 1

3

アクセス トークンの拡張に関する Facebook のドキュメントによると、「... サーバー側のログイン フローから作成されたアプリは、自動的に有効期間の長いユーザー アクセス トークンを取得します。この有効期間の長いトークンは、ユーザーが認証フローをトリガーするたびに更新および拡張されます。」

これは発生していないため、Facebook にバグを報告する必要があります

また、アクセス トークンの有効期限をチェックしないことをお勧めします。これは、アクセス トークンが有効期限の前にいくつかの理由で期限切れになる可能性があるためです。

  • ユーザーがパスワードを変更する
  • アプリ シークレットを変更する
  • ユーザーがアプリを削除し、アプリに戻ってきた

代わりに、FB API 呼び出しごとに OAuth エラーをチェックし、OAuth エラーが検出された場合はユーザーをログイン フローにリダイレクトする必要があります。これについては、Facebook 開発者ブログのこの記事で説明されているように、期限切れのアクセス トークンの処理方法について説明しています。 .

于 2013-01-14T11:26:42.973 に答える