フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
Djoserライブラリを使用したアカウント登録機能構築後、仮登録を行い、本登録完了のためにuidとtokenをPOSTするとステータス403が返ってくる
DRF
Django
たけ
2023/04/14 17:50

Django REST FrameworkでJWT認証システム構築チュートリアル(Djoserライブラリ)を参考に、JWT認証システムを構築しました。

動作確認において、仮登録を行い、発行された「uid」と「token」をPOSTして、本登録を
完了させようとすると、ステータス403が返され、本登録に失敗します。

この原因を調べると、すでに有効化されているアカウント(is_active=True)に対して、上記操作を行うと、ステータス403が返されるとのことでした。

仮登録時には、is_activeをFalseにする必要があると思うのですが、動画内ではそのような
記述がないように思いました。

動画内でステータス403が返ってこない理由はなんでしょうか。
ご教授いただければ幸いです。

回答 3件
login
回答するにはログインが必要です
はる@講師
3年近く前

仮登録をすると、is_activeがFalseで登録されます。

本登録をすると、is_activeがTrueに設定されます。

下記をcloneしてPostmanで仮登録、本登録を試してみてください。

https://github.com/haruyasu/drf-auth-tutorial

たけ
3年近く前

12:10の質問の際、差分が見当たりませんでしたと記載させていただきましたが、mysite/settings.pyの「USER_CREATE_PASSWORD_RETYPE」が下記のようになっていました。

(正) USER_CREATE_PASSWORD_RETYPE
(私) USESR_CREATE_PASSWORD_RETYPE

上記を正しく記述すると、私のソースコードでも正しく動作することを確認しました。
(単純な記述ミスでした)

お手間を取らせて申し訳ございませんでした。

今後ともよろしくお願いいたします

1
たけ
3年近く前

ご回答ありがとうございます。

ご案内いただいたソースコードで実行したところ、is_activeは、仮登録時には、Falseに設定され 、本登録時にはTrueに設定されることを確認しました。

しかし、私のソースとご案内いただいたソースを比較しても、差分が見当たりませんでした。

この仮登録と本登録の処理を行っているのは、ソースコードのどの箇所であるかご教授いただければ幸いです。

ちなみに、私のソースコードで実行すると、仮登録時にユーザーのパスワードが未設定になります。
(ご案内いただいたソースコードでは、仮登録時からユーザーのパスワードは設定された状態になっていました)