Laravel入門トップページ


目次

  1. Composerのダウンロードとインストール
  2. コメント掲示板を作成してみよう
  3. リレーションシップを使いこなそう
  4. ユーザ認証の機能を実現しよう
    1. 概要と準備
    2. メールの設定
    3. 認証機能の実装
    4. 学籍番号の登録とログイン名
    5. 登録メールアドレスの認証
    6. パスワードのリセット
    7. プロフィールの表示
    8. パスワードの変更
  5. マルチ認証の機能を実現しよう
  6. MongoDB に接続しよう
  7. キューを利用しよう
  8. コマンド(コンソール)を利用しよう
  9. 本番環境にデプロイしよう

ユーザ認証の機能を実現しよう

メールの設定

ユーザ登録の確認などで,システムからユーザにメールを送信するための準備として,メールアカウントの設定を行う.ここでは,システムのメールアドレスは Google の GMAIL を指定する(その他のメールでは設定が異なる可能性がります).

目次に戻る

Gmailのセキュリティ設定(2段階認証)

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

まず,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

Gmailのセキュリティ設定(アプリパスワード)

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

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

メールの設定

プロジェクトの設定ファイル .env に次のような設定を記述する.なお,接続のためのパスワードを平文で入力しなければならないので,ファイルの管理には十分に注意する必要がある(特に Git に含めないように注意する.また,本番環境ではファイルの所有者及びグループに対するアクセス権の設定にも注意が必要である).Gmail の2段階認証を使っている場合は MAIL_PASSWORD= にアプリパスワードを指定する(ログインパスワードではない)ことにも注意する.

.env (抜粋)

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=xxxxxxxxxxxxxxx@gmail.com
MAIL_FROM_NAME=Laravelユーザ管理システム
MAIL_USERNAME=xxxxxxxxxxxxxxx@gmail.com
MAIL_PASSWORD=zzzzzzzzzzz
MAIL_PRETEND=false

目次に戻る

メールの送信テスト

php artisan tinker を使って,コマンドラインからメールの送信ができることを確認(テスト)しよう.メールの送信が成功すれば,null が返るはずである.

[GakuinHana@rin06 laravelUser]$ php artisan tinker ⏎
Psy Shell v0.9.6 (PHP 5.6.36 — cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('yyyyyyyyy@zzzzzz.com')->subject('test'); }); ⏎
=> null
>>> exit ⏎
Exit:  Goodbye
[GakuinHana@rin06 laravelUser]$

目次に戻る