web-dev-qa-db-ja.com

更新トークンでjwtを使用する必要があるのはなぜですか?

期限切れのアクセストークンの処理に更新トークンを使用し、ログアウト時にデータベースから更新トークンを削除できます。ユーザーは「remember me」を確認できるため、更新トークンは期限切れにならない(不明)。

では、なぜリフレッシュトークンでjwtを使用する必要があるのでしょうか。ランダムなハッシュ文字列にできますか?そして、それは有効期限を持つべきですか?

1
Vahid Najafi

ランダムなハッシュ文字列にできますか?

はい、ランダムな文字列にすることができます。ランダムに生成または推測できないようにする必要があります。

では、なぜリフレッシュトークンでjwtを使用する必要があるのでしょうか。

jwtには、独自の長所と短所があります。
主な利点は、ステートレスであることです。そして、あなたはストレージを必要としません
ただし、欠点はセキュリティが1つのキーのみに依存することです。それが侵害された場合、システム全体が侵害されます。

それはあなたのアーキテクチャとユースケースに依存します。 jwtとランダムハッシュ文字列の両方は、すでに多くの本番アプリケーションで使用されています。ニーズとリソースに応じて選択してください。

そして、それは有効期限を持つべきですか?

使用を検討しているようです。 :)
期限切れの場合に新しいアクセストークンを取得するために使用されるため、refresh_tokenには長い有効期限が必要です。上記では、refresh_tokenの悪用が懸念されています。それを軽減するために、いくつかの対策を講じることができます。 OAuth 2.0仕様を見てみましょう。 OAuth RFC-6749

承認サーバーは更新トークンを使用できます
アクセスごとに新しい更新トークンが発行されるローテーション
トークン更新応答。以前の更新トークンは無効化されています
ただし、承認サーバーによって保持されます。更新トークンが
侵害され、その後攻撃者と
正当なクライアント、そのうちの1つは無効な更新を提示します
トークン。許可サーバーに違反を通知します。

あなたがあなたの目的のためにjwtを使用したかどうかを知りたいです。
今後回答/コメントをここに書き込んでください

1
Procrastinator