Změna funkce authenticate Nette 3.1

Pepino
Člen | 249
+
0
-

Zdravím,
proč je v Nette 3.1 změna ve funkci

public function authenticate(array $credentials):

na:

function authenticate(string $user, string $password)

Využíval jsem možnost mít pole parametrů např. pro předání parametru z jakého místa aplikace se uživatel snaží přihlásit. Tím jsem mohl vyhodit vyjímku ještě před přihlášením, pokud neměl do dané části možnost se přihlásit.

Je nějaké čistší řešení, než nechat uživatele přihlásit a hned vzápětí ověřit jestli mu udělit/odmítnout přístup (ať už přes authorizator nebo přes callback onLoggedIn) ?

emololftw
Člen | 81
+
+2
-

Můžete mít obecnou třídu Auth, která však nebude dědit od Nette\Security\Authenticator. V ní bude metoda (např. authenticate), která bude vracet IIdentity nebo SimpleIdentity, kterou se budete přihlašovat. Tzn. V obecné třídě Auth, můžete mít jakoukoliv logiku (pole parametrů, userToken apod…) včetně DI závislostí.

Editoval emololftw (15. 2. 2022 11:08)

David Grudl
Nette Core | 8108
+
+2
-

Do authenticate() se nadále posílají všechny parametry, co jdou do login(), jen to prostě není pole: https://github.com/…ity/User.php#L100