我使用php artisan make:auth和laravel MustVerify来使成员系统工作。
我想改变laravel register email验证系统
“注册 - >登录 - >验证电子邮件”到“注册 - >验证电子邮件 - >登录”
默认的laravel验证系统是:
我想要的是:
我怎样才能做到这一点。
我认为一种简单的方法是向用户添加一个名为active
或verified
的字段。如果使用没有验证他们的电子邮件,他们将不被允许登录系统(这可以通过用您自己覆盖登录功能轻松实现)。这样,用户在验证其电子邮件并且该字段设置为true之前无法访问系统。如果您不想删除用户而宁愿停用用户,这也有助于以后。
在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中提供