genealabs / laravel-registrar
0.1.6
2018-08-29 15:05 UTC
Requires
- php: >=7.0.0
- genealabs/laravel-messenger: *
- illuminate/routing: 5.3 - 5.6
- illuminate/view: 5.3 - 5.6
Requires (Dev)
This package is auto-updated.
Last update: 2022-02-01 13:01:24 UTC
README
Laravel 注册器
通过电子邮件确认激活 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)。