你能帮助我吗?我正在使用Laravel构建我自己的登录表单。但我有一个问题,因为我使用哈希方法存储我的密码,并在我的登录表单中再次使用哈希方法进行比较。但是我发现散列值总是在变化。如何使用自定义登录表单比较Laravel的散列密码?
这是我在航线代码:
Route::post('/admin_handle_login', function()
{
$rules = array(
'admin_username' => 'required',
'admin_password' => 'required'
);
$validate_admin_login = Validator::make(Input::all(), $rules);
if($validate_admin_login->fails()) {
$messages = $validate_admin_login->messages();
Session::flash('warning_notification','Error: Incomplete details!');
return Redirect::to('/flaxadmin')
->withErrors($messages)
->withInput(Input::except('admin_password'));
} else {
$d = array(
Input::get('admin_username'), Hash::make(Input::get('admin_password'))
);
$validate_admin = DB::table('administrators')
->select('username')
->where('username', Input::get('admin_username'))
->where('password', Hash::check('password', Input::get('admin_password')))
->count();
fp($d);
fp($validate_admin);
}
});
结果是
Array
(
[0] => admin002
[1] => $2y$10$RTwKHN9W1/unu1ZhYlNjauApJjjoNTBnE6td/AZ5jWgZEdqVav0um
)
0
在我的数据库admin002的密码是
$2y$10$47sSXLzh/YXN6Rf2fmljYO7lZaxfhXVSUTp5bssR2gYQ6Nw9luUH2
是我的代码错了吗?或者有没有适当的方法来做到这一点?我是Laravel的一个初学者。
您将需要做的是使用该用户名查找数据库中的所有用户。那么你将不得不检查每个帐户的密码。 – Jerodev 2014-10-30 08:31:31
我知道。但是我使用了散列函数,并且每当页面重新加载或刷新时都会随时更改。因此,如果我使用123作为密码,并且在我的数据库中也是123,但它们是不同的散列值。这就是为什么我无法得到确切的价值 – Jerielle 2014-10-30 08:38:45