Overenie spravnosti hesla
- SontoEremo
- Člen | 341
Zdravím,
Potrebujem overiť zadané heslo už prihláseného užívateľa tak aby po jeho
odoslaní následoval redirect a odhlásenie. ale neviem ako overiť iba to
heslo cez ktoré je prihlásený.
Môj presenter
/**
* DeactivateForm factory.
* @return Form
*/
protected function createComponentDeactivateForm() {
$deactiveForm = new Form;
$deactiveForm->addPassword('client_password', Html::el()->setHtml("Heslo<span class='red'>*</span>"));
$deactiveForm->addSubmit('deactivateBtn', 'Zatvoriť Účet');
$deactiveForm->getElementPrototype()->id = "reg_form";
$deactiveForm->onSuccess[] = $this->deactivateFormSuccessSubmited;
return $deactiveForm;
}
/**
* @param Form $deactivateForm
*/
public function deactivateFormSuccessSubmited(Form $deactiveForm) {
$values = $deactiveForm->getValues();
if(Čo Sem Dať pre porovnanie?) {
$this->userRepository->updateStatus($client_status);
$this->redirect('prihlasenie');
} else {
$deactiveForm->addError('Neplatné heslo');
}
}
- Aurielle
- Člen | 1281
Jednoduše budeš ověřovat heslo stejným způsobem jako při přihlášení, uživatel se ti totiž může přihlásit pouze tím jedním heslem. Což znamená vzít heslo od uživatele, prohnat ho hashováním, solením, bryptem nebo co vlastně používáš, a porovnat s hashem v databází. „iba to heslo cez ktoré je prihlásený“ je v tomhle kontextu tedy nesmysl.
- Jiří Nápravník
- Člen | 710
Vytahnes uzivatele z databaze, podle mailu, ci loginu, ci co pouzivas. A do toho ifu das:
if($userFromDb['password'] === alogritmusKterymPocitasHashHesla($hesloZFormulare))
- SontoEremo
- Člen | 341
Jiří Nápravník napsal(a):
Vytahnes uzivatele z databaze, podle mailu, ci loginu, ci co pouzivas. A do toho ifu das:
if($userFromDb['password'] === alogritmusKterymPocitasHashHesla($hesloZFormulare))
Používam klasické userManager zo Sandboxu
Fuuu nejak mi to nejde :)
$passFromDb = $this->userRepository->findAll()->where('client_password');
if($passFromDb['client_password'] === Passwords::hash($values->client_password)) {
echo "OK";
} else {
echo "BAD";
}
- Jiří Nápravník
- Člen | 710
Pokud použííváš pro generování hesla Passwords::hash, tak pro kontrolu použij Passwords::verify, tedy
if(Passwords::verify($values->client_password, $passFromDb['client_password']))