알고리즘은 작동하지만 암호가 해시로 변환되고 데이터베이스에 저장되면 암호가 홈페이지로 리디렉션되지 않습니다. 대신, 로그인 자격 증명이 잘못되었음을 나타내는 로그인 페이지로 리디렉션됩니다. 하지만 로그인을 시도하면 괜찮습니다. 내가 도대체 뭘 잘못하고있는 겁니까?Laravel에서 md5를 해시로 변환 할 때의 버그
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))'대신에'if '라고 말하십시오. –