samkitano / laravel-user-activation
Laravel 5.2 用户通过确认邮件激活
Requires
- php: >=5.6.0
- illuminate/database: 5.*
- illuminate/support: 5.*
This package is not auto-updated.
Last update: 2024-09-14 19:58:26 UTC
README
此包通过随机令牌(也称为“激活码”)实现简单的电子邮件用户验证。
描述
本包的目的是利用Laravel的本地注册和认证功能,只需运行php artisan make:auth
,避免编写额外的路由、控制器和/或视图的麻烦。
安装和配置完成后,它将在用户提供者模型上观察:created
事件。一旦创建用户,它将触发服务提供者以处理激活过程:令牌创建、发送激活电子邮件和存储。
新注册的用户除非使用正确的唯一令牌(激活链接)进行请求,否则无法登录。
然后我们将检查请求是否“合法”,如果配置设置要求,还将检查其有效期。
令牌的唯一性通过随机sha256哈希(64字符长)确保。
用户可以在登录表单中请求新的令牌,只要提供有效的凭证(注册时使用的凭证);以防用户丢失令牌,无论什么原因。谁也不会不小心删除电子邮件...
网站管理员也有选项接收此类事件的电子邮件通知:用户注册、用户激活和用户请求新的令牌。
所有电子邮件输出都排队,以提高性能。
要求
-Laravel >= 5.2.X
-PHP >= 5.6
安装
使用php artisan make:auth
创建您的认证路由和视图后,继续安装
1 - 使用Composer要求:composer require samkitano/laravel-user-activation
2 - 在config/app.php
中的'providers'数组中包含服务提供者。
'providers' => [ Kitano\UserActivation\UserActivationServiceProvider::class, ];
3 - 发布包。必须使用--force选项以替换默认视图。那些将完全相同,只是添加了一个小的会话检查。
php artisan vendor:publish --force
4 - 运行迁移
php artisan migrate
5 - 在app\Http\Controllers\Auth\AuthController.php
中导入并替换特性
<?php namespace App\Http\Controllers\Auth; use Kitano\UserActivation\Traits\ActivatesUsers; //... class AuthController extends Controller { /* |-------------------------------------------------------------------------- | Registration & Login Controller |-------------------------------------------------------------------------- | | This controller handles the registration of new users, as well as the | authentication of existing users. By default, this controller uses | a simple trait to add these behaviors. Why don't you explore it? | */ // Comment or replace this line: // use AuthenticatesAndRegistersUsers, ThrottlesLogins, ActivatesUsers; // with: use ThrottlesLogins, ActivatesUsers; // ...
6 - 在您的用户模型中$fillable数组中包含属性'active'。
7 - 检查app\config\user_activation.php
以设置您自己的默认值(电子邮件地址、令牌有效期、模板等),然后就是这样。
请注意不要忘记在app\config\mail.php
中配置您的邮件提供者。否则,根本不会发送任何电子邮件。有关此问题,请参阅Laravel Mail 文档。
当然,您可能希望更改包的视图、电子邮件模板,甚至翻译文件以满足您的需求。请随意这样做。
注意 - 尽管未经测试,但该包应与任何用户提供者兼容,除了App\User::class
之外,前提是您向用户表添加一个默认值为0的'active'、布尔型字段,并在您的模型中包含该属性。
许可
LaravelUserActivation是开源软件,根据MIT许可证许可。