MD5密码登录不工作laravel 5

时间:2016-07-29 15:08:39

标签: php laravel-5

我想将密码字段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(),
        ]);

}

2 个答案:

答案 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
}