我的注册表单正在运行,它将用户存储到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);
答案 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);
工作。