Email认证
简介
许多 web 应用要求用户在使用之前进行 Email 地址验证。Laravel 不强迫你在每个应用中重新实现它,Laravel提供了方便的方法来发送和验证电子邮件验证请求。
Model 预备
开始之前, 验证你的 App\User
模型是否实现了 Illuminate\Contracts\Auth\MustVerifyEmail
契约。 此外,你应该使用 Illuminate\Auth\MustVerifyEmail
trait:
<?php
namespace App;
use Illuminate\Auth\MustVerifyEmail;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract;
class User extends Authenticatable implements MustVerifyEmailContract
{
use MustVerifyEmail, Notifiable;
// ...
}
数据库注意事项
Email 验证字段
接下来, 你的 user
需要包含一个 email_verified_at
字段用来存储 Email 地址通过验证的时间。默认的,Laravel框架中 users
表的数据迁移内已经包含了这个字段。所以,您需要做的就是执行数据库迁移:
php artisan migrate
路由
Laravel 的 Auth\VerificationController
类包含了发送验证链接和验证 Email 的所需逻辑。 要为这个控制器注册所需的路由 , 传递 verify
项给 Auth::routes
方法即可 :
Auth::routes(['verify' => true]);
保护路由
路由中间件 可用于仅允许经过验证的用户访问给定路由。Laravel 附带了 verified
中间件,它定义在 Illuminate\Auth\Middleware\EnsureEmailIsVerified
。由于此中间件已在应用程序的HTTP内核中注册,因此您需要做的就是将中间件附加到路由定义:
Route::get('profile', function () {
// 只有验证过的用户可以进入
})->middleware('verified');
视图
当执行 make:auth
命令时,Laravel将生成邮箱验证需要的所有视图。 视图位于 resources/views/auth/verify.blade.php
。您可以根据应用需要自定义此视图。
邮箱验证之后
在 Email 地址通过验证之后,用户将被重定向到 /home
。你可以通过在 VerificationController
中定义 redirectTo
方法或属性来自定义重定向地址:
protected $redirectTo = '/dashboard';
点击查看所有 Laravel 中文文档 文章: https://www.codercto.com/courses/l/3.html
Mastering Bitcoin
Andreas M. Antonopoulos / O'Reilly Media / 2014-12-20 / USD 34.99
Mastering Bitcoin tells you everything you need to know about joining one of the most exciting revolutions since the invention of the web: digital money. Bitcoin is the first successful digital curren......一起来看看 《Mastering Bitcoin》 这本书的介绍吧!