Laravel 5.4在登录表单上显示激活待处理消息

时间:2017-08-04 05:18:25

标签: laravel-5 login

我正在研究Laravel 5.4项目。我喜欢Laravel提供的登录,无论是登录还是注册都可以。

我将以下代码添加到Auth / LoginController.php。它只允许激活的用户(status = 1)成功登录,但不允许挂起的用户或被阻止的用户(状态= 0或其他)。

protected function credentials(\Illuminate\Http\Request $request)
{
    return ['email' => $request->{$this->username()}, 'password' => $request->password, 'status' => 1];
}

无论如何,为了保护垃圾邮件,我想只允许激活的用户登录。对于那些帐户未激活的人,我想在登录表单上显示待处理的消息。另外,我想对被阻止的用户做同样的事情。

你能告诉我如何实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

这样,Laravel只会根据您指定的凭据选择用户,如果您想检查用户的状态以及要显示的视图可以覆盖登录控制器的authenticated()方法。它可以访问已登录的用户,因此请注意您必须注销状态无效。

protected function authenticated(Request $request, $user)
{
    if ( $user->status == 0 ) {
        auth()->logout();

        return back()->withErrors(['email' => 'You are blocked or not activated.']);
    }

    return redirect()->intended($this->redirectPath());
}