期限切れのアクセストークンの処理に更新トークンを使用し、ログアウト時にデータベースから更新トークンを削除できます。ユーザーは「remember me」を確認できるため、更新トークンは期限切れにならない(不明)。
では、なぜリフレッシュトークンでjwt
を使用する必要があるのでしょうか。ランダムなハッシュ文字列にできますか?そして、それは有効期限を持つべきですか?
ランダムなハッシュ文字列にできますか?
はい、ランダムな文字列にすることができます。ランダムに生成または推測できないようにする必要があります。
では、なぜリフレッシュトークンでjwtを使用する必要があるのでしょうか。
jwtには、独自の長所と短所があります。
主な利点は、ステートレスであることです。そして、あなたはストレージを必要としません。
ただし、欠点はセキュリティが1つのキーのみに依存することです。それが侵害された場合、システム全体が侵害されます。
それはあなたのアーキテクチャとユースケースに依存します。 jwtとランダムハッシュ文字列の両方は、すでに多くの本番アプリケーションで使用されています。ニーズとリソースに応じて選択してください。
そして、それは有効期限を持つべきですか?
使用を検討しているようです。 :)
期限切れの場合に新しいアクセストークンを取得するために使用されるため、refresh_tokenには長い有効期限が必要です。上記では、refresh_tokenの悪用が懸念されています。それを軽減するために、いくつかの対策を講じることができます。 OAuth 2.0仕様を見てみましょう。 OAuth RFC-6749
承認サーバーは更新トークンを使用できます
アクセスごとに新しい更新トークンが発行されるローテーション
トークン更新応答。以前の更新トークンは無効化されています
ただし、承認サーバーによって保持されます。更新トークンが
侵害され、その後攻撃者と
正当なクライアント、そのうちの1つは無効な更新を提示します
トークン。許可サーバーに違反を通知します。
あなたがあなたの目的のためにjwtを使用したかどうかを知りたいです。
(今後回答/コメントをここに書き込んでください)