为什么Laravel Auth :: attempt方法不起作用?

时间:2019-01-29 14:57:58

标签: php laravel

我想进行用户身份验证,方法Auth :: attempt()不起作用,但是数据正确(laravel 5.2)

public function postLogin(Request $request)
{
    $this->validate($request, [
        'name' => 'required|max:255',
        'password' => 'required'
    ]);

    $username = $request->input('name');
    $password = $request->input('password');


    if (Auth::attempt(['name' => $username, 'password' => $password])) {
        return redirect('home.get');
    } else {
        return "FALSE";
    }

2 个答案:

答案 0 :(得分:0)

如果您使用的是php artisan make:auth。有一个“使用AuthenticatesUsers”;默认代码将登录并使用电子邮件和密码进行检查。因此,您需要将凭据函数复制到LoginController中(覆盖默认代码)。下面的代码显示了如何使用电子邮件或带有密码的名称登录。

protected function credentials(Request $request)
{
    $field = filter_var($request->get($this->name()), FILTER_VALIDATE_EMAIL)
        ? $this->name()
        : 'name';

    return [
        $field => $request->get($this->name()),
        'password' => $request->password,
    ];
}

答案 1 :(得分:-1)

默认情况下,您需要通过电子邮件和密码进行尝试