我尝试登录但总是失败。
这是我如何存储我的密码
'password' => bcrypt($data['password']),
在laravel LoginController中。
public function customchecker()
{
$credentials = [
'username' => Input::get('username'),
'password' => bcrypt(Input::get('password'))
];
if (Auth()->attempt($credentials)) {
return Redirect::to('home')->with('alert-success', 'You are now logged in.');
}else{
$errors = ['username' => ['Email and/or password invalid.']];
return Redirect::back()->withErrors($errors)->withInput(Input::except('password'));
}
}
我用这个测试
$credentials = [
'username' => Input::get('username'),
'password' => Input::get('password')
];
仍然无法正常工作,我该如何解决这个问题?
答案 0 :(得分:3)
在凭证中你不应该加密密码,你应该只输入纯文本密码,而不是:
$credentials = [
'username' => Input::get('username'),
'password' => bcrypt(Input::get('password'))
];
使用:
$credentials = [
'username' => Input::get('username'),
'password' => Input::get('password')
];
它会起作用。
在幕后,这样的事情将在稍后完成:
public function validateCredentials(UserContract $user, array $credentials)
{
$plain = $credentials['password'];
return $this->hasher->check($plain, $user->getAuthPassword());
}
因此,您会看到以后使用普通密码来比较密码是否有效。