samkitano/laravel-user-activation

Laravel 5.2 用户通过确认邮件激活

v1.0.0 2016-08-14 16:20 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:26 UTC


README

Latest Version on Packagist Software License Total Downloads

此包通过随机令牌(也称为“激活码”)实现简单的电子邮件用户验证。

描述

本包的目的是利用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许可证许可。