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 エラーが発生するたびに、更新トークンを使用して新しいアクセス トークンを要求するだけです。
私が考えたワークフローは
- 認証されたユーザーのみが表示できるページを取得するために、サーバーにアクセス トークンを含むリクエストを送信します。
- アクセス トークンの有効期限が切れている場合、フロントエンドで HTTP 401 Unauthorized エラーが発生します。
- サーバーに更新トークンを含むリクエストを送信して新しいアクセス トークンを取得すると、フロントエンドはそれを localStorage に保存します。
- 再度リクエストを送信してください。
これは悪い方法ですか?
下手な英語で申し訳ありません...