Nesprávně zadané heslo při použití UserManager z Model (sandbox)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Payne
Člen | 14
+
0
-

Dobrý den,
jsem začátečník, a potřebuji vytvořit aplikaci s autentifikací.
Pro autentifikaci používám třídy ze sandboxu (model/Passwords a model/UserManager) prakticky bez úprav, ale nemohu přijít na způsob, jak se přihlásit. Pokaždé získám hlášku „Incorrect password“.
Napadá mě, že by na to mohl mít vliv salt, který (pokud není zadán) je náhodně generovaný. Mohl by mi někdo poradit?
Přikládám Presenter pro registraci (v případě nutnosti dodám další ale jak říkám, používám defaultní třídy ze sandboxu)

<?php

namespace App\Presenters;

use Nette,
	App\Model,
	App\Model\Passwords;


class RegisterPresenter extends BasePresenter {

	/** @var Nette\Database\Context */
	private $database;

	public function __construct(Nette\Database\Context $database) {
		$this->database = $database;
	}


	public function createComponentRegisterForm() {
		$form = new Nette\Application\UI\Form;

		$form->addText('name', 'Jméno:')
			->setRequired();

		$form->addText('password', 'Heslo:')
			->setRequired();

		$form->addText('email', 'Email:')
			->setRequired();


		$form->addSubmit('send', 'Registrovat');

		$form->onSuccess[] = $this->registerFormSucceeded;


		return $form;
	}

	public function registerFormSucceeded($form) {
		$values = $form->getValues();
		$options['salt'] = Passwords::salt();

		$this->database->table('users')->insert(array(
			'username' => $values->name,
			'password' => Passwords::hash($values->password, $options),
			'salt' => $options['salt'],
		));

		$this->flashMessage('Úspěšně registrován', 'success');
		$this->redirect('this');
	}
}
Payne
Člen | 14
+
0
-

[Vyřešeno]
Krátký datový typ v databázi.

sKopheK
Člen | 207
+
0
-

Proto vždycky dávám VARCHAR(255), dokud fakt neřeším výkonnost, protože se tím zbavíš právě takových zbytečných problémů.