Django REST frameworkとReact+Reduxでウェブサイトの開発をしています。
ユーザー認証機能にJWTを用いようとしているのですが、よくわからないことがあり質問させていただきました。
会員登録済みのユーザーはフロントエンド(React)からバックエンド(DRF)にemailとpasswordでログインリクエストを送信しobtain_jwt_tokenにてtokenを生成してフロントエンドに返し、これをlocalStorageに保存してログインが成功、というところまではわかるのですがユーザーのログイン状態の確認についてどのように実装すればいいかがわかりません。
ナビゲーションバーにログイン済みであればユーザー名の表示、そうでなければログインまたは会員登録のためのリンクを表示したいです。
自分なりに考えてみたのでもしこの方法が間違っていたり、もっといい方法がもっといい方法があれば教えてください。
①localStorageにtokenが保存されていなければログインまたは会員登録のリンクを表示する。もしtokenがあれば②へ。
②tokenをverify_jwt_tokenに送信して有効期限以内であればログイン済みにしてユーザー名を表示。もしtokenの有効期限が切れていれば400をフロントエンドに送信して③へ。(そもそもここでverify_jwt_tokenを通すのは正しいですか?)
③フロントエンドで400が返ってきたと同時に、有効期限切れのtokenをrefresh_jwt_tokenに送信。もしrefresh_jwt_tokenのJWT_REFRESH_EXPIRATION_DELTAで設定された期限以内なら新しいtokenを返し、これをlocalStorageに保存してログイン済みに。もし期限が切れていたら400を返して古いtokenを削除し、ユーザーには再度新しくemailとpasswordを用いてログインをしてもらう。
この方法は従来のJWTによる認証で合ってますか?ご指摘お願いします。
すみません。今調べてみたところrefresh_jwt_tokenは有効期限のないtokenにしか使えないということがわかりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。