laravel 电子邮件验证——迹忆客-ag捕鱼王app官网
简介
许多web应用程序要求用户在使用该应用程序之前先验证其电子邮件地址。laravel提供了便捷的方法来发送和验证电子邮。
model准备
首先,请确认我们的app\user
模型已实现illuminate\contracts\auth\mustverifyemail
接口:
一旦将此接口添加到模型中,新注册的用户将自动收到一封包含电子邮件验证链接的电子邮件。正如您在eventserviceprovider看到的那样,laravel已经包含一个附加到illuminate\auth\events\registered
事件的sendemailverificationnotification
监听器。
数据库注意事项
电子邮件验证列
接下来,user表必须包含一个email_verified_at
列,用于存储验证电子邮件地址的日期和时间。默认情况下,laravel框架自带的migrate已经包含表users
已包含此列。因此,需要做的就是运行数据库migrate:
$ php artisan migrate
路由
laravel包含了一个auth\verificationcontroller
类,该类包含发送验证链接和验证电子邮件的必要逻辑。要为此控制器注册必要的路由,需要将verify
选项传递给auth::routes
方法:
auth::routes(['verify' => true]);
保护路由
路由中间件只能用于允许经过验证的用户访问给定的路由。laravel自带了verified
中间件,该中间件在illuminate\auth\middleware\ensureemailisverified
中定义。由于此中间件已经在应用程序的http内核中注册,因此需要做的就是将中间件添加到路由定义:
route::get('profile', function () {
// only verified users may enter...
})->middleware('verified');
视图
要生成所有用于电子邮件验证的必要视图,可以使用composer软件包laravel/ui
:
$ composer require laravel/ui
$ php artisan ui vue --auth
电子邮件验证视图位于中resources/views/auth/verify.blade.php
。您可以根据需要为应用程序自定义此视图。
验证电子邮件之后
验证电子邮件地址后,用户将自动重定向到/home
。我们可以通过通过verificationcontroller中的redirectto方法自定义重定向位置:
protected $redirectto = '/dashboard';
事件
laravel在电子邮件验证过程中分配事件。我们可以在eventserviceprovider
中将监听器附加到这些事件上:
/**
* the event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'illuminate\auth\events\verified' => [
'app\listeners\logverifieduser',
],
];
查看笔记