你能幫助我嗎?我正在使用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