Auth::attempt() 在 Laravel 5.5 中不起作用

Auth::attempt() is not working in Laravel 5.5

我的注册表正在运行,它将用户存储到数据库,但是当用户登录时 Auth::attempt() return 错误。这是我的登录代码。我将密码存储在 sha1 encription 中的 db 中。

Route::post('login',function(){
$creds=array(
        'email' => Input::get('email'),
        'password' => sha1(Input::get('password'))
    );
$auth = Auth::attempt($creds);

dd($auth);

即使您可以按照 this post, You can do it manually by with using other auth method

中的描述实施服务提供者
This means you can do like so:

//....
try{
    $user = User::where('email', Input::get('email'))
      ->where('password', sha1(Input::get('password')))->firstOrFail();
    Auth::login($user);
} catch (ModelNotFoundException $e)
    return ['Username or password Incorrect'];
}

然而,最好的办法是在 Laravel 中使用 bcrypt(),但如果没有 bcrypt 选项,上述方法应该有效。

试试这个 -

Route::post('login',function(){

$auth = Auth::attempt(['email'=>Input::get('email'),'password'=>Input::get('password')],$remember ? true : false);

dd($auth);
});

希望这对你有用。

我通过将注册用户密码转换为sha1然后再转换为laravel散列加密解决了这个问题Hash::make(sha1(Input::get('password')));

登录时我喜欢下面的内容

Hash::make(sha1(Input::get('password')))

然后 $auth = Auth::attempt($creds); 成功了。