2

Django REST フレームワーク、react、redux を使用して、案内広告のような Web サイトを開発しています。JWT による認証について質問があります。認証にdjangorestframework_simplejwtを使用したいので、いくつかのチュートリアルを確認しました。以下のように、多くのチュートリアルがクライアント側でアクセストークンをチェックしているのを見ました

export function isAccessTokenExpired(state) {
 if (state.access && state.access.exp) {
   return 1000 * state.access.exp - (new Date()).getTime() < 5000
 }
 return true
}

トークンもリフレッシュします。しかし、理由はわかりません。期限切れのアクセス トークンで HTTP 401 Unauthorized エラーが発生するたびに、更新トークンを使用して新しいアクセス トークンを要求するだけです。

私が考えたワークフローは

  1. 認証されたユーザーのみが表示できるページを取得するために、サーバーにアクセス トークンを含むリクエストを送信します。
  2. アクセス トークンの有効期限が切れている場合、フロントエンドで HTTP 401 Unauthorized エラーが発生します。
  3. サーバーに更新トークンを含むリクエストを送信して新しいアクセス トークンを取得すると、フロントエンドはそれを localStorage に保存します。
  4. 再度リクエストを送信してください。

これは悪い方法ですか?

下手な英語で申し訳ありません...

4

1 に答える 1