genealabs/laravel-registrar

此包已被废弃,不再维护。作者建议使用 illuminate/auth 包。

通过电子邮件确认激活 Laravel 的用户账户。

0.1.6 2018-08-29 15:05 UTC

This package is auto-updated.

Last update: 2022-02-01 13:01:24 UTC


README

Laravel 注册器

Join the chat at https://gitter.im/GeneaLabs/laravel-registrar

通过电子邮件确认激活 Laravel 的用户账户。

功能

  • 通过电子邮件验证激活账户。
  • 在账户激活前阻止登录。
  • 使用 Laravel 通知发送电子邮件。

原因

在几个项目中设置电子邮件激活后,现在很明显,这将是经常使用的东西,值得将其提取到包中,以便通过最少的编码轻松重用。

要求

  • PHP 7.0.0+
  • Laravel 5.3

安装

使用以下命令安装包

composer require genealabs/laravel-registrar

将服务提供者添加到您的应用配置文件 /config/app.php

GeneaLabs\LaravelRegistrar\Providers\LaravelRegistrarService::class,

将以下特质添加到您的登录控制器 /app/Http/Controllers/Auth/LoginController.php

use GeneaLabs\LaravelRegistrar\Traits\ActivatesUsers;

//class LoginController extends Controller
//{
    use ActivatesUsers {
        ActivatesUsers::attemptLogin insteadof AuthenticatesUsers;
    }

最后,将此特质添加到您的用户模型中

use GeneaLabs\LaravelRegistrar\Traits\Activatable;

//class User
//{
 use Activatable;

用法

每次创建新用户时,都会将激活令牌添加到其记录中,并发送包含激活用户账户链接的电子邮件激活通知(通过删除激活令牌和设置激活时间戳来激活用户账户)。然后,用户将能够登录到其账户。

条件激活通知

要仅在满足特定条件时发送通知电子邮件,请覆盖您的 User 类中的 getCanBeActivatedAttribute() 方法。默认情况下,此方法返回 true,除非您覆盖它。

public function getCanBeActivatedAttribute() : bool
{
    // return true or false based on your specific condition.
}

自定义

您可以通过实现自己的通知类来自定义通知电子邮件,然后在您的用户类中覆盖以下方法

protected static function sendNotification()
{
    static::created(function ($user) {
        $user->notify(new MyOwnNotificationClass($user));
    });
}

要更改通知模板本身,请遵循 Laravel 文档中的说明:[https://laravel.net.cn/docs/5.3/notifications#customizing-the-templates](https://laravel.net.cn/docs/5.3/notifications#customizing-the-templates)。