私がこの質問の答えを理解していると JWT:期限切れのトークンを更新することは良い戦略ですか? 、期限切れの認証トークンを更新するには更新トークンを使用する必要があります。
私のWebアプリはステートレスでなければならず、リフレッシュトークンが取り消されたかどうかはわかりません。リフレッシュトークンを使用しても意味がありません。
代わりに、ユーザー認証情報をもう一度送信して新しい認証トークンを取得するだけで、認証トークンを更新します。これが機能するためには、クライアントが資格情報をメモリに保存する必要がありますが、これは問題になる可能性があります。
これを達成する他の方法はありますか、または取り消された更新トークンのリストを追加する唯一の安全な方法はありますか?
更新メカニズムは、資格情報の保存を回避するために正確に構築されています。認証情報を使用すると、アカウント全体にアクセスできますが、refresh token
を使用すると、指定したドメインで機能するauth token
sにのみアクセスできます。
アプリはステートレスですが、認証情報を保存できるのに、更新トークンを保存できないのはなぜですか?
さらに、アプリは、更新トークンの有効期限を処理するのと同じくらい、資格情報の有効期限を処理する必要があります。資格情報が期限切れになるいくつかの方法を次に示します。
したがって、従うべき基本設計は次のとおりです。
auth token
を使用してリソースAPIと通信してみてください1.
が失敗した場合は、auth token
をrefresh token
で取得してみてください2.
が失敗した場合は、ログインビューを表示して新しいrefresh token
を取得しますOAuth
を使用しているようです。フォローしているデザインパターンを尊重してください。パターンから何かを行うと、リスクにさらされます。
セッションを取り消す可能性をユーザーに提供することもできます(refresh token
)。そうすることで、パスワードを変更せずに、侵害されたデバイスをログアウトできます。パスワードを保存する場合、デバイスをリモートでログアウトするには、パスワードを変更する必要があるため、すべてのデバイスからログアウトします。