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

时间:2017-09-18 12:38:41

标签: laravel laravel-5 laravel-5.2 laravel-5.1 laravel-5.3

我的注册表单正在运行,它将用户存储到db,但是当用户登录时,Auth :: attempt()返回false。这是我的登录代码。我将密码存储在sha1 encription中的db中。

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

dd($auth);

3 个答案:

答案 0 :(得分:2)

即使您可以按照this post中的描述实施服务提供商,也可以使用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不可选的情况。

答案 1 :(得分:1)

试试这个 -

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

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

dd($auth);
});

希望这对你有用。

答案 2 :(得分:0)

我通过将注册用户密码转换为sha1然后转换为laravel哈希加密来解决它,如Hash::make(sha1(Input::get('password')));

登录时我喜欢以下

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

然后$auth = Auth::attempt($creds);工作。