2016-08-04 13 views
1

OAuth 2のコンテキストでは、refresh_tokenの期限切れ、またはその欠如はどのように処理されますか?期限切れのないOAuthリフレッシュトークンの実装

私はJSON Webトークン(JWT)をaccess_tokenとして使用していますが、寿命は短いです(20分後に期限が切れます)。私が理解していることは、これはaccess_tokenを保存する必要はなく、有効である(スコープのような信頼できる情報を消費する)だけであるということです。

しかし、私はどのようにrefresh_tokenを実装するのだろうかと思っています。私の研究では、私は、Googleと他の人が何らかの理由で取り消されない限り、いつまでも良いと思っているのはrefresh_tokenです。これは、発行されたすべてのリフレッシュトークンをシステムに保存しなければならないことを意味しているため、取り消し済みとしてマークすることができます。

トークンの格納に関する問題はありますか?潜在的に無限のトークンセットが保存され、永遠にアクセス可能である必要があるようです。

何か不足していますか?リフレッシュトークンを実装するためのベストプラクティスはありますか?彼らはJWTでなければなりませんか? JWTを使用していても、access_tokensも保存する必要がありますか?もしそうなら、期限を過ぎてしまわないようにする理由はありますか?時間の経過と共に変化するJWTの秘密はどうですか?

答えて

1

それは良い質問で、アプリケーションが定期的に再認証をユーザに尋ねることなく、新しいアクセストークンを生成できるようにrefresh_tokensは、一般的な習慣に失効している、

しかし、アプリケーションがアクティブの数の制限を強制する必要があります個々のクライアントに許可されたリフレッシュトークン。たとえば、次のように指定できます。たとえば、:

各OAuthクライアントは最大20のアクティブrefresh_tokensのみを持つことができ、その制限に達すると最も古いトークンを取り消し、要求を拒否せずに新しいトークンを付与する必要があります。

また、リフレッシュトークンが一定期間(6か月間)消費されない場合は、トークンも取り消す必要があります。

このところで、あなたはrefresh_token消費量に制限を強制し、そしてここでキャッチされ、これはGoogleがまたやっている方法であることができ、

Google OAuth2 Doc

を参照してください。
関連する問題