coderjp/verifier

Laravel 5 的邮箱验证

0.1.3 2016-09-12 22:47 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:25:59 UTC


README

Verifier 是一个为 Laravel 5 定制的包,用于向用户发送验证邮件,以验证他们的电子邮件地址是否有效。用户将点击邮件中的链接来验证他们的地址。

安装

使用以下命令使用 composer 安装此包:

composer require coderjp/verifier

然后运行 composer installcomposer update

更新 composer 后,将服务提供程序添加到 config/app.php 中的 providers 数组。

'Coderjp\Verifier\VerifierServiceProvider',

生成配置文件以更改各种设置。此文件位于 config/verifier.php

php artisan vendor:publish --provider=Coderjp\\Verifier\\VerifierServiceProvider

确保 tables 配置选项正确。默认使用的表是 users。然后运行以下命令生成迁移:

php artisan verifier:migration

用法

模型

VerifierUserTrait 添加到您希望进行验证的模型中。这通常是 User 模型。

<?php

use Coderjp\Verifier\Traits\VerifierUserTrait;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, EntrustUserTrait, SoftDeletes, VerifierUserTrait;

    ...
}

模板

您需要为欢迎邮件创建一个邮件模板。默认配置使用 emails.welcome

变量 $user 将传递到您的模板中。这将是一个包含相关用户的数组。

Hi {{ $user['name'] }},

Welcome to our site. Please click the following link to activate your account:

{{ url('verify', $user['verification_code']) }}

Regards, CoderJP

验证

在创建用户的地方,您现在可以调用模型的 sendVerification() 方法。这将触发向用户发送电子邮件。

...

public function store(CreateUserRequest $request)
{
        $user = User::create($request->all());
        $user->sendVerification();
        
        ...
}

...

要验证令牌,您可以使用以下方式使用 verify() 方法

<?php

class UserController extends Controller {

    ...
    
    public function validate(Request $request, $code)
    {
            $user = User::verify($code);
            
            if ($user) {
                // $user = User model
                return view('user.validated');
            } else {
                // $user = null;
                return view('user.invalid');
            }
    }

    ...
    
}

如果代码有效,验证将设置 validated = true,从数据库中删除 验证代码 并返回相关用户。如果代码无效,则返回 null

覆盖

某些选项可能需要比简单的属性更多的思考,以下可以通过在模型中声明方法来覆盖

收件人姓名

这是收件人的姓名。默认情况下,它使用模型的 name 属性,但您可以通过声明以下内容来覆盖它

...

public function getVerificationEmailName() {
    return ucwords($this->first_name .' '. $this->last_name);
}

...

邮件主题

默认情况下,使用配置选项 subject,但您可以在模型中定义以下方法

...

public function getVerificationEmailSubject()
{
    return 'Welcome to our site ' . $this->name;
}

...

许可证

Verifier 是开源软件,许可协议为 MIT 许可证