確認環境:
Windows10、Laravel 7.30.4、PHP 7.2.33、MySQL 5.7.30、Gmail
多くのWebアプリケーションは、利用開始時にユーザーのメールアドレスを確認する必要がありますが、Laravelで、とても簡単にメール認証の機能が実装できます。
1) Loginページを作る
上記ページの手順でLoginページを作っておきます。
2) UserモデルにMustVerifyEmailインターフェースを追加する
app\User.php
namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable implements MustVerifyEmail { use Notifiable; // ... }
class User extends Authenticatable
の後ろに implements MustVerifyEmail
を追加する。
3)web.phpにルートパラメータを追加する
routes\web.php
Auth::routes(['verify' => true]);
- Loginページを作る でAuth::routes は自動で作られるので、引数に [‘verify’ => true] を追加する。
4) .envファイルにGmail用の設定をする。
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=任意のGmailアドレス MAIL_PASSWORD=下記参照 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=任意のGmailアドレス(MAIL_USERNAMEと同じアドレス) MAIL_FROM_NAME="${APP_NAME}"
自分のGoogleアカウントのセキュリティでアプリパスワードを取得します。
注意点は、2段階認証を選択しておくことです。
取得したアプリパスワードを.envファイルの「MAIL_PASSWORD」に設定します。
5) サイトにアクセスし、新規にユーザー登録する。
ユーザー登録した後、登録時に指定したメールアドレス(Gmail)を確認します。
以下の認証メールが届いていることを確認します。

Verify Email Address ボタンを押すと、認証処理が行われ
/home画面にリダイレクトします。
これだけで、メール認証機能が作れます。すごいシンプルです。
参考サイト