Laravel 5.8:如何更改注册用户以便在登录前验证电子邮件

问题描述 投票:-2回答:2

我使用php artisan make:auth和laravel MustVerify来使成员系统工作。

我想改变laravel register email验证系统

“注册 - >登录 - >验证电子邮件”到“注册 - >验证电子邮件 - >登录”

默认的laravel验证系统是:

  1. 用户点击注册按钮后。
  2. 用户自动登录系统
  3. 显示验证页面

我想要的是:

  1. 用户点击注册按钮。
  2. 用户必须先验证电子邮件才能登录系统

我怎样才能做到这一点。

php laravel
2个回答
0
投票

我认为一种简单的方法是向用户添加一个名为activeverified的字段。如果使用没有验证他们的电子邮件,他们将不被允许登录系统(这可以通过用您自己覆盖登录功能轻松实现)。这样,用户在验证其电子邮件并且该字段设置为true之前无法访问系统。如果您不想删除用户而宁愿停用用户,这也有助于以后。


0
投票

在Http \ Controllers \ Auth \ RegisterController.php中,在顶部插入此代码

use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;

并通过简单地将此代码写入RegisterController.php来覆盖RegistersUsers trait中的register方法

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    // $this->guard()->login($user);

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

注意注释的代码。这是用户在注册后自动登录的地方。

答案已在Laracasts中提供

© www.soinside.com 2019 - 2024. All rights reserved.