我想将密码字段bcrypt更改为md5。在数据库中,我将密码存储在md5中,但登录不起作用
myController的:
public function postLogin(Request $request)
{
$this->validate($request, array('username' => 'required', 'password' => 'required'));
$credentials = $request->only('email', 'password');
if (Auth::validate($credentials))
{
$user = Auth::getLastAttempted();
Auth::login($user, $request->has('remember'));
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
}
答案 0 :(得分:1)
您需要创建自定义用户提供程序才能执行此操作,因为Laravel的默认用户提供程序依赖bcrypt
。这方面的文档在这里:
https://laravel.com/docs/5.2/authentication#adding-custom-user-providers
然而,现实是你不想这样做。 MD5完全不适合密码散列 - Laravel内置了散列,这种散列更加安全,您应该真正使用它。
答案 1 :(得分:0)
从字段获取密码时使用md5并使用数据库md5密码进行检查。
示例:
$passs=md5($request->password);
$username=$request->username;
$adminPass=$user->select('password')->where('user','=',$username)->first();
if($passs===$adminPass){
// redirect
}