我需要使用md5()
代替bcrypt()
来存储密码。但是,当我这样做时:
protected function create(array $data)
{
return Account::create([
'username' => $data['username'],
'email' => $data['email'],
'password' => md5($data['password']),
'datetoday' => Carbon::now(),
'lastip' => request()->ip(),
'confirmation' => bcrypt($data['password']),
]);
}
当我尝试登录时,表示凭据错误。
答案 0 :(得分:6)
建议不要在bcrypt()上使用md5()。
但是,您可以手动验证用户身份。覆盖LoginController中的login()
方法
public function login(Request $request)
{
$user = User::where('username', $request->username)
->where('password',md5($request->password))
->first();
Auth::login($user);
return redirect('/');
}
答案 1 :(得分:1)
您必须创建新的服务提供商。
应用程序/提供商/ md5hashprovier.php
class MD5Hasher extends BcryptHasher
{
public function check($value, $hashedValue, array $options = array())
{
$user = User::wherePassword(md5($value))->first();
return $user ? true : false
}
}
接下来,您必须创建MD5Hasher类。我建议找到它 应用程序/类/ MD5Hasher.php
\App\Providers\MD5HashProvider::class,
并将新服务提供商注册到提供者数组中的config / app.php
{{1}}
这将启用带有md5密码的身份验证
答案 2 :(得分:0)
使用MD5不再是一个好主意。
要摆脱旧的MD5记录,您可以在此处使用第二个技巧:http://john.cuppi.net/migrate-from-md5-to-bcrypt-password-hashes/