[英]laravel 5.1 login not working
我使用laravel 5.1身份验证进行登录。 但Auth::attempt($credentials)
始终返回false!
我使用以下途径创建用户:
Route::get('newuser', function () {
return User::create([
'username' => 'admin',
'email' => 'admin@gmail.com',
'password' => Hash::make('123'),
]);
});
我添加了一个简单的postLogin函数来覆盖AuthController中的该函数:
public function postLogin(Request $request) {
$credentials = $this->getCredentials($request);
if(Auth::attempt($credentials)) {
return 'ok';
}
return 'nok';
}
getCredentials是具有以下内容的laravel函数:
protected function getCredentials(Request $request)
{
return $request->only($this->loginUsername(), 'password');
}
这件事可能有多种原因。 我建议您在用户表中检查phpMyAdmin中密码列的长度。
在存储密码的表中,将密码列更改为数据库中的最大长度。
另一个我建议您尝试使用下面的代码,如果它起作用。
public function postLogin()
{
// Login credentials
$credentials = array(
'username' => 'admin@gmail.com',
'password' => '123',
);
// Authenticate the user
if (Auth::attempt($credentials))
{
return 'ok';
}
else{
return "failed";
}
希望这会有所帮助。
不要忘记更改数据库中的密码列长度,将其更改为最大。
将密码数据类型更改为LONGTEXT,长度为maximun或1000。
最后也是重要的一点是,删除表中的所有记录并重新启动该过程,因为私下保存的传递密码已保存了另一笔长度,原因是当前的哈希密码与旧密码不匹配。
因此,截断该表,然后重试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.