算法可行,但一旦密码已转换为散列并保存到数据库中,它就不会重定向到主页。相反,它会重定向到登录页面,说明登录凭据不正确。但是如果我尝试登录,那没关系。我究竟做错了什么?将md5移植到Laravel中的问题
AuthenticatesUsers.php
protected function attemptLogin(Request $request)
{
$check = $this->guard()->attempt(
$this->credentials($request), $request->has('remember')
);
if ($check === false)
{
$user = User::where('username','=',$request->input('username'))->first();
if(isset($user)) {
if($user->password == md5($request->input('password'))) { // If their password is still MD5
$hashed_password = Hash::make($request['password']); // Convert to new format
$user->password = $hashed_password;
$user->save();
return $this->guard()->attempt(
array(
'username'=>$request->input('username'),
'password'=>$hashed_password
), $request->has('remember')
);
} else {
// Redirect to the login page.
return false;
}
}
}
return $check;
}
所以你想象用户可以使用'md5 hashed password'登录? –
是的,因为我将当前的MD5换成了laravel的哈希。但问题是在那之后。 – EatCodePlaySleep
所以你需要将数据库中现有的md5密码转换为'laravel hashing'?如果是这样,试着说'if(password_verify($ request-> input('password'),$ user-> password))'而不是。 –