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. 未検証ユーザのパスワードリセット

カスタムユーザ認証

Gmail 2段階認証の設定とアプリパスワードの取得

パスワードを忘れたユーザのために電子メールを用いたパスワード機能を実装したい.このために,Web システムから電子メールを送信する設定を行う.今回は Gmail から送信することを考えます.

Gmail は標準でセキュリティ設定がされており,Python Django 等の外部システムからのメール送信は拒否されています.2022年5月までは,送信元のアカウントでログインし,「Google アカウント」の「ログインとセキュリティ」で「安全性の低いアクセスの無効化」を解除しておくことでログインパスワードを使ってメールの送信ができていました.しかしこの機能は2022年5月30日で利用できなくなりました.よって Python Django からメール送信ができるようにするためにはこのページの手順に従って2段階認証を有効にし,さらにアプリパスワードを設定しなければなりません.なお,2段階認証を設定するためには電話番号が必要で,1つの電話番号で認証可能な Google アカウントには上限(5個程度?)があるようです.

また,Gmail 以外のメールを利用し,SMTP とパスワードで送信できる環境であれば次のページに進んでください.

Gmail の2段階認証

まず,Google にログインして,画面右上の「Googleアカウント」アイコンをクリックし,「Googleアカウントの管理」を開く.さらに,「セキュリティ」のページを開くと「Googleへのログイン」の項目が表示される.「2段階認証プロセス」がオフになっているので,これをオンする手続きを行う.

google-2-step-verification2022-01

次のような画面になるので,内容を確認し「使ってみる」をクリックする.

google-2-step-verification2022-02

パスワードを入力して「次へ」をクリックする.

google-2-step-verification2022-03

再設定用の電話番号が登録されていたら,その番号が表示される.スマートフォンの正しい番号であることを確認する.さらに,コードの取得方法は「テキスト メッセージ」を選択し,「次へ」をクリックする.

google-2-step-verification2022-04

スマートフォンの SMS に Google 確認コードが含まれたテキストメッセージが届くので,その確認コードを入力する.

google-2-step-verification2022-05

2段階認証プロセスを有効にする.

google-2-step-verification2022-06

2段階認証プロセスが有効になった.これによって新たなブラウザや PC で Google にログインするときには,パスワードだけでなく,スマートフォンの SMS に届く確認コードも必要になる.

google-2-step-verification2022-07

アプリパスワードの取得

Google の2段階認証が設定されたので,Django からメールを送信するためにアプリパスワードを設定する.

Google にログインして,画面右上の「Google アカウント」アイコンをクリックし,「Google アカウントの管理」を開く.さらに,「セキュリティ」のページを開くと「Google へのログイン」の項目が表示される.「2段階認証プロセス」がオンになっており,アプリパスワードが「なし」になっていることを確認して,アプリパスワードを作成する.

google-2-step-verification2022-08

本人確認のために,パスワードの入力が求められる.

google-2-step-verification2022-09

アプリパスワードを作成する.まず,「アプリを選択」で「メール」を選ぶ.

google-2-step-verification2022-10

「デバイス選択」は「その他(名前を入力)」を選ぶ.

google-2-step-verification2022-11

適当な名前を付ければよいが,ここでは「Vagrant」としておく.その後「生成」ボタンをクリックする.

google-2-step-verification2022-12

これにより,16文字のアプリパスワードが生成されたので,これをメモ(コピー)します.その後「完了」をクリックします.

google-2-step-verification2022-13

アプリパスワードが生成されたことが確認できました.

google-2-step-verification2022-14

次のページではいま取得したアプリパスワードを使って Django からメール送信する設定と実験を行います.

目次に戻る