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

Ahojte,

snažil som sa postupovať podľa návodu … spravil som pár vecí, ale stále to všetko nemôžem dať dokopy

  1. vytvoril som triedu MyAuthenticator.php (podľa návodu)
  2. do súboru config.neon som vložil nasledújúci riadok
<?php
services:
	...
	authenticator: MyAuthenticator
?>

3. V databáze som si vytvoril tabuľku users(id,username,password)
… ale aj tak stale nechapem ako to cele prepojit s mojou databázou->tabuľkou users

Ďakujem za radu

Matey
Člen | 142
+
0
-

Ahoj, v sandboxe je pripravené prihlasovanie Sandbox – UserManager

a to čo hľadáš je práve v authenticate()

<?php
public function authenticate(array $credentials)
{
	list($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 (!Passwords::verify($password, $row[self::COLUMN_PASSWORD_HASH])) {
		throw new Nette\Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
	} elseif (Passwords::needsRehash($row[self::COLUMN_PASSWORD_HASH])) {
		$row->update([
			self::COLUMN_PASSWORD_HASH => Passwords::hash($password),
		]);
	}
	$arr = $row->toArray();
	unset($arr[self::COLUMN_PASSWORD_HASH]);
	return new Nette\Security\Identity($row[self::COLUMN_ID], $row[self::COLUMN_ROLE], $arr);
}
?>
Takeshi
Člen | 596
+
0
-

Matey napsal(a):

?>

Dakujem, ale ja neviem ako to prepojit s formularom, kde to ulozit, co prepisat … som z toho mimo

Matey
Člen | 142
+
+1
-

Aj to je v sandboxe pripravené, stačí si to dobre prezrieť.
Konkretne prihlasovací formulár SignForm

V spracovaní formulára voláš

$this->user->login($values->username, $values->password)

username a password sa spracuje v authenticatore metodou autenticate

Takeshi
Člen | 596
+
0
-

Jasne, popozeram, dakujem