php*_*per 3 encryption md5 password-encryption laravel laravel-5
我想将我现有的项目重新开发给laravel.
在我的旧系统中,我将密码存储到md5中.
现在我如何根据现有用户的laravel哈希方法对其进行转换.
有没有直接的方法呢?
有没有直接的方法呢?
没有没有直接的方法,但你可以通过覆盖postLogin内部来实现这一点,Auth/AuthController.php所以它将检查密码是否md5格式化然后用laravel散列方法重新进行,否则用户将正常连接,如:
public function postLogin(Request $request)
{
$this->validate($request, [
'login' => 'required', 'password' => 'required',
]);
$credentials = $this->getCredentials($request);
//Get the user
$user = User::where('login', $request->login)->first();
//If Hached by bcrypt
if (Auth::attempt($credentials, $request->has('remember')))
{
return redirect()->intended($this->redirectPath());
}
else //Else if Hached by md5
{
if( $user && $user->password == md5($request->password) )
{
$user->password = Hash::make($request->password);
$user->save();
if($user->authorized){
$user->save();
Auth::login($user);
}else
Auth::logout();
}
}
return redirect($this->loginPath())
->withInput($request->only('login', 'remember'))
->withErrors([
'login' => $this->getFailedLoginMessage(),
]);
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2448 次 |
| 最近记录: |