213

GoogleAPIとOAuth2の使用を始めたばかりです。クライアントが私のアプリを承認すると、「更新トークン」と短期間の「アクセストークン」が与えられます。これで、アクセストークンの有効期限が切れるたびに、更新トークンをGoogleにPOSTでき、新しいアクセストークンが提供されます。

私の質問は、アクセストークンの有効期限が切れる目的は何ですか?更新トークンの代わりに、長続きするアクセストークンがないのはなぜですか?

また、更新トークンは期限切れになりますか?

Google OAuth2ワークフローの詳細については、 「 OAuth2.0を使用したGoogleAPIへのアクセス」を参照してください。

4

4 に答える 4

235

これは実装に大きく依存しますが、一般的な考え方は、プロバイダーが短期のアクセス トークンを長期のリフレッシュ トークンと共に発行できるようにすることです。なんで?

  • 多くのプロバイダーは、セキュリティ面で非常に弱いベアラー トークンをサポートしています。有効期間を短くし、更新を必要とすることで、攻撃者が盗まれたトークンを悪用できる時間を制限します。
  • 大規模な展開では、API 呼び出しごとにデータベース ルックアップを実行したくないため、代わりに、復号化によって検証できる自己エンコードされたアクセス トークンを発行します。ただし、これは、これらのトークンを取り消す方法がないことも意味するため、トークンは短期間発行され、更新する必要があります。
  • リフレッシュ トークンには、より強力なクライアント認証が必要です。上記のアクセス トークンとは異なり、通常はデータベース ルックアップで実装されます。
于 2011-08-12T05:28:37.560 に答える
9

これは本質的にセキュリティ対策です。アプリが侵害された場合、攻撃者は短期間のアクセストークンにのみアクセスでき、新しいアクセストークンを生成する方法はありません。

更新トークンも期限切れになりますが、アクセストークンよりもはるかに長く存続することになっています。

于 2011-08-11T20:40:04.763 に答える