Email认证

Laravel 中文文档 · 2019-01-15 14:12:02

简介

许多 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

查看所有标签

Blockchain Basics

Blockchain Basics

Daniel Drescher / Apress / 2017-3-16 / USD 20.99

In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具