Změna funkce authenticate Nette 3.1
- Pepino
- Člen | 256
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 | 82
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 | 8218
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