Django REST FrameworkでJWT認証システム構築チュートリアル(Djoserライブラリ)を参考に、JWT認証システムを構築しました。
動作確認において、仮登録を行い、発行された「uid」と「token」をPOSTして、本登録を
完了させようとすると、ステータス403が返され、本登録に失敗します。
この原因を調べると、すでに有効化されているアカウント(is_active=True)に対して、上記操作を行うと、ステータス403が返されるとのことでした。
仮登録時には、is_activeをFalseにする必要があると思うのですが、動画内ではそのような
記述がないように思いました。
動画内でステータス403が返ってこない理由はなんでしょうか。
ご教授いただければ幸いです。
仮登録をすると、is_activeがFalseで登録されます。
本登録をすると、is_activeがTrueに設定されます。
下記をcloneしてPostmanで仮登録、本登録を試してみてください。
12:10の質問の際、差分が見当たりませんでしたと記載させていただきましたが、mysite/settings.pyの「USER_CREATE_PASSWORD_RETYPE」が下記のようになっていました。
(正) USER_CREATE_PASSWORD_RETYPE
(私) USESR_CREATE_PASSWORD_RETYPE
上記を正しく記述すると、私のソースコードでも正しく動作することを確認しました。
(単純な記述ミスでした)
お手間を取らせて申し訳ございませんでした。
今後ともよろしくお願いいたします
ご回答ありがとうございます。
ご案内いただいたソースコードで実行したところ、is_activeは、仮登録時には、Falseに設定され 、本登録時にはTrueに設定されることを確認しました。
しかし、私のソースとご案内いただいたソースを比較しても、差分が見当たりませんでした。
この仮登録と本登録の処理を行っているのは、ソースコードのどの箇所であるかご教授いただければ幸いです。
ちなみに、私のソースコードで実行すると、仮登録時にユーザーのパスワードが未設定になります。
(ご案内いただいたソースコードでは、仮登録時からユーザーのパスワードは設定された状態になっていました)