laravel5.7 追加機能 ユーザー登録時にメール送信

laravel5.7 追加機能 ユーザー登録時にメール送信

こんばんは、のるぼるのんです。

遂にLaravel5.7がリリースされましたね!リリースノートには様々な面白そうな機能がてんこ盛りです!

今回はその中から、ユーザー登録時に自動で確認メールを送信する機能を実装、ご紹介します!

laravelプロジェクトを導入するところから始めます。

 

Laravelプロジェクト導入

authプロジェクトを導入します。

Laravel5.7がインストールできました。認証機能を実装していきましょう。

 

make:authコマンド、マイグレーション

 

実際に出力されたmigrateファイルを確認してみます。

timestampのemail_verified_atカラムが追加されています。マイグレーションしましょう。

email_verified_atカラムが含まれたusersテーブルが作成されました。

登録してみます。

この時点ではメール送信は行えていません。当然email_verified_atにもNULLが入ります。

 

メール送信機能追加

web.php

Auth::route()にEメール認証オプションを与えます。

 

User.php

トレイトなどを追加します。

 

.env

メール設定をします。今回はmailtrapを使用します。

ユーザー登録してみましょう。ローディングがちょっと長ければOKです。

こんなメールが届きました。クリックするとemail_verified_atに日付が入ります。

これでメール認証機能は実装完了です。

 

メール認証済みユーザーのみアクセス

認証済ユーザーのみアクセス可能にするには、web.phpでmiddlewareを追加します。今回はHome画面(/home)をメール認証したユーザーのみ入れるようにしましょう。

web.php

認証していないユーザーは自動的に/email/verifyへとリダイレクトされ、認証を促すメッセージが表示されました。

なお、ユーザー登録後のリダイレクト先を認証が必要なページにしてしまうと、この警告画面に飛んでしまいますのでご注意を。

 

認証を促す画面は/resources/views/auth/verify.blade.phpから編集可能です!

Laravel、どんどん便利になってますね!

 

 

 

 

Laravelカテゴリの最新記事