Nelze se authentikovat, chybná query

Juan
Člen | 2
+
0
-

Ahoj, mám metodu authenticate a v ní kód níže.. Ale když se chci registrovat, tak to vybere pouze dva.. Nesprávné sloupce a pak dále to už napíše, že se jedná o nesprávný jméno/heslo. Pomohl by mi někdo co mám špatně prosím?

	public function authenticate(array $credentials): Nette\Security\IIdentity
	{
		[$username, $password] = $credentials;
		$row = $this->database->table(self::TABLE_NAME)
			->where(self::COLUMN_NAME, $username)
			->fetch();
		if (!$row) {
			throw new Nette\Security\AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND);
		} elseif (!$this->passwords->verify($password, $row[self::COLUMN_PASSWORD])) {
			throw new Nette\Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
		} elseif ($this->passwords->needsRehash($row[self::COLUMN_PASSWORD])) {
			$row->update([
				self::COLUMN_PASSWORD => $this->passwords->hash($password),
			]);
		}
		$arr = $row->toArray();
		unset($arr[self::COLUMN_PASSWORD]);
		return new Nette\Security\Identity($row[self::COLUMN_ID], $row[self::COLUMN_ROLE], $arr);
	}

Tracy: http://prntscr.com/obb038

Editoval Juan (6. 7. 2019 8:55)

Mysteria
Člen | 797
+
0
-

Kód vypadá v pořádku. Z dotazů je vidět, že ti to našlo uživatele Test v databázi, takže to muselo selhat na ověření hesla. Máš heslo v databázi správně? Tzn. vygenerové přes $this->passwords->hash() a má sloupec v databázi nastavenou dostatečnou délku, aby se tam vešlo celé (minimálně 60 znaků)?

Juan
Člen | 2
+
0
-

Jaaj, tak v tom byla ta chyba.. :( Já se na to snažil přijít celej večer včera. :/ Jak velkou délku by jsi doporučoval teda abych nastavil a nebyl s tím problém? Teď jsem dal VARCHAR (65).