Auth::尝试在 Laravel 5 中也为有效用户抛出无效用户


Auth::attempt throwing Invalid user for valid users too in Laravel 5

我正在使用Laravel 5提供的身份验证功能并尝试使用有效凭据登录,但它不断向我抛出无效的用户错误。

这是我的帖子登录。

   public function postLogin(Request $request)
   {
    $this->validate($request, [
        'email' => 'required|email', 'password' => 'required',
    ]);
    $credentials = $request->only('email', 'password');
    if ($this->auth->attempt($credentials, $request->has('remember')))
    {
        if($this->auth->attempt(['active' => 1]))
        {
           return redirect()->intended($this->redirectPath());
        }
        else
        {
            return redirect('aut.reset');
        }
    }
    return redirect()->back()
                ->withInput($request->only('email', 'remember'))
                ->withErrors([
                    'email' => $this->getFailedLoginMesssage(),
                ]);
}

我的模型包含用户名电子邮件密码活动client_code字段。

您正在尝试两次,请改用以下代码:

$creds = ['email' => $request->get('email'),
          'password' => $request->get('email'),
          'active' => 1]; //your custom parameters
          
if ($this->auth->attempt($credentials, $request->has('remember')))
{
    return redirect()->intended($this->redirectPath());
}

下次阅读手册,它在那里...

使用条件对用户进行身份验证

您还可以向身份验证查询添加额外的条件:

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1]))
{
    // The user is active, not suspended, and exists.
}