【Laravel8】JetStreamで新規登録時にパスワード確認をする
こんにちは。今回はJetStreamのメールアドレス確認機能を紹介します。
メールアドレス確認機能とは
ユーザー登録機能でユーザーを作成した際、登録したメールアドレスに確認メールを送り本人確認を行う機能のことです。メールに記載のリンクをクリックするまでユーザー登録が完了しないので、システムにログインすることはできません。現在では多くのWEBサービスがこの認証形式を取っているので、世の中の主流になっています。JetStreamにはこの機能が予め備わっていますが、デフォルトでは無効になっています。有効にすることで簡単に使い始めることができます。
メールアドレス確認機能を有効化する
認証機能はFortifyで実装されていますので、Fortifyの設定ファイルでメールアドレス確認機能を有効化します。config/fortify.phpのFeatures::emailVerification()のコメントを外してください。
'features' => [
Features::registration(),
Features::resetPasswords(),
Features::emailVerification(), // コメントを外します
Features::updateProfileInformation(),
Features::updatePasswords(),
Features::twoFactorAuthentication([
'confirmPassword' => true,
]),
次にUserモデルにMustVerifyEmailインターフェースを実装します。useは元々定義してあるので、implements MustVerifyEmailを記述します。
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
...
}
以上2点の作業でメールアドレス確認の有効化は完了です。
メールアドレス確認を試す
早速メールアドレス確認を試してみましょう。http://localhost:8000/registerにアクセスし、ユーザーを新規登録します。登録ボタン押下後、以下の画面が表示されます。この時点で登録したユーザーのアドレス宛にメールアドレスが送信されています。
メールの文面は以下のようになっています。[Verify Email Address]をクリックします。
クリックするとシステムにログインし、ダッシュボード画面に遷移します。これで認証は完了です。
メール確認済かどうかはUserモデルのemail_verified_atに日付が入っているかどうかで判断しています。日付が入っていれば確認済となります。
まとめ
いかがでしょうか。非常に簡単にメールアドレス確認機能を実装することができました。JetStreamはこういう細かな機能なども提供されているので、とても行き届いている感じがして良いですね。
ディスカッション
コメント一覧
まだ、コメントがありません