2016-07-29 15 views
0

パスワードフィールドbcryptをmd5に変更したいとします。データベースでは、私は、MD5でパスワードを保存していますが、ログインがMD5パスワードログインが動作していませんlaravel 5

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

あなたはもう、パスワードのMD5を使用する理由わかりません。私に間違いのようです。 –

+1

しないでください。 MD5はセキュリティ上の目的には適していないと考えられており、十分なコストでbcryptがはるかに優れています。 –

答えて

1

あなたはLaravelのデフォルトのユーザー・プロバイダがbcryptに依存しているので、これを行うには、カスタム・ユーザー・プロバイダを作成する必要があります。このためドキュメントはここにある:

https://laravel.com/docs/5.2/authentication#adding-custom-user-providers

しかし、現実には、あなたがこれを行うにはしたくないということです。 MD5はパスワードハッシングには完全に不十分です.Laravelはハッシュを組み込んでいますが、これははるかに安全です。

0

フィールドからパスワードを取得中にmd5を使用し、データベースmd5パスワードで確認してください。

例:

$passs=md5($request->password); 
$username=$request->username; 
$adminPass=$user->select('password')->where('user','=',$username)->first(); 
if($passs===$adminPass){ 
    // redirect 
} 
関連する問題