Python Django 入門トップページ


カスタムユーザ認証

  1. プロジェクトの概要
  2. プロジェクトの作成と初期設定
  3. Users アプリケーションの作成と有効化
  4. 認証にカスタムユーザモデルを利用する
  5. モデルの作成
  6. マイグレーション
  7. ユーザの登録
  8. 管理ユーザの登録
  9. 管理サイトの作成
  10. Comments アプリケーションの作成
  11. ページ雛形の作成
  12. ログイン・ログアウトの実装
  13. Navbar の設置
  14. Comments アプリケーションのユーザ認証
  15. ユーザ一覧ページ
  16. ユーザ詳細情報の表示
  17. ユーザ情報の更新
  18. パスワードの変更
  19. Gmail 2段階認証の設定とアプリパスワードの取得
  20. メールの設定と送信
  21. パスワードのリセット
  22. ユーザ登録機能の実装
  23. ユーザ登録時に氏名も登録
  24. ユーザ登録時にメールアドレスも登録
  25. ユーザ登録してもログインできないように
  26. ユーザ登録後にメールを送信
  27. メール検証によるアカウントの有効化
  28. トークン有効期限の変更
  29. ログアウト後に top へリダイレクト
  30. 検証メールの再送信
  31. 未検証ユーザのログインエラーメッセージ
  32. メールに有効期限を表示
  33. フラッシュメッセージの変更
  34. 未検証ユーザのパスワードリセット

カスタムユーザ認証

ユーザの登録

これまでのステップでデータベースのテーブルがいくつか作成されました.ここでは,作成された users_user テーブルにユーザ情報を登録します.あとのステップではユーザ自身が登録して,メールで検証するような機能作成しますが,ここではまず,テストユーザとなる3名のユーザ情報を shell を使って登録します.

ここで登録するユーザの情報は次の表の通りです.

ユーザIDメールアドレスパスワード
user_aa@sample.compassword
user_bb@sample.compassword
user_cc@sample.compassword

シェルを使って次の通りユーザを登録していきます.

(py39) C:\Users\lecture\Documents\django\custom_auth_project>python manage.py shell ⏎
Python 3.9.12 (main, Apr  4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from users.models import User ⏎

In [2]: user = User.objects.create_user('user_a', 'a@sample.com', 'password') ⏎

In [3]: user.save() ⏎

In [4]: user = User.objects.create_user('user_b', 'b@sample.com', 'password') ⏎

In [5]: user.save() ⏎

In [6]: user = User.objects.create_user('user_c', 'c@sample.com', 'password') ⏎

In [7]: user.save() ⏎

In [8]: exit() ⏎

(py39) C:\Users\lecture\Documents\django\custom_auth_project>

データベースの中身を確認します.

sqlite> .headers ON ⏎
sqlite> select * from users_user; ⏎
id|password|last_login|is_superuser|username|first_name|last_name|email|is_staff|is_active|date_joined
1|pbkdf2_sha256$320000$8TFCLlWsRBxeNkIWAcyF3E$PL1vsH+t/b/19/OtxUMho2nKXmEu5iyHN0fXd9W1BHo=||0|user_a|||a@sample.com|0|1|2022-08-08 13:01:00.359514
2|pbkdf2_sha256$320000$LUldHdZJfs5V8qcp5Gx9cf$JDzpYdAZO/fNyMnM7FTfdCCi401sfpNXdeWIrRdVq3g=||0|user_b|||b@sample.com|0|1|2022-08-08 13:01:12.791084
3|pbkdf2_sha256$320000$rtgj5smnPDcJ8VWviKrpqw$2todPqvOCQoEjxSkBZgNIa6av5E0bBPBKBH2gmoBWEY=||0|user_c|||c@sample.com|0|1|2022-08-08 13:01:23.298490
sqlite>

目次に戻る