Java Springを使用したAPI JWT更新トークンワークフローに関していくつか質問があります。
これがこれまでにあります:
質問:
2つのトークンを区別する最良の方法は何ですか。
更新トークンは、JWTである必要はありません。私は単にランダムな英数字の文字列を生成することを好みます。更新トークンには追加情報は含まれません。リフレッシュトークンの有効性を確認するには、データベースを検索する必要があります。リクエストのどこに表示されるかで区別します。承認トークン(アクセストークン)は、選択したヘッダーに表示されます。
有効なトークンのないリクエストと区別するために、ステップ3で(無許可ではなく)エラーをどうするか
401 Unauthorizedを送信するのがまさにその方法です。 401はクライアントに、現在リソースにアクセスできないことを伝えますが、リソースに再度アクセスできるようにアクションを実行できます(ログイン/更新トークン)。反対側の403は、リソースが彼に属していないことをクライアントに伝え、彼は許可を要求する必要があります。管理者に連絡する
/ token/refreshは現在認証を要求しません。それでいいの?
いいえ、認証は必要ありません。
/ token/refreshエンドポイントがPOSTヘッダー付き、POSTパラメーター付き、またはGET付きヘッダーである必要があります。
通常、GETエンドポイントは読み取り専用であり、リソースを変更しないでください。 POSTおよびPUTエンドポイントはミューテーション用です。この場合、POSTパラメータと専用URLを使用します(例:/ token/refresh)