Dva authenticatory se hadaji

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

Zdravim, predelam web z verze nette 2.0 do 2.4 a naskytl se mi problem, ze se mi dva authenticatory hadaji (nedostanu se ani na hlavni stranku). Jeden slouzi pro prihlaseni uzivatele a druhy pro admina.

Pise mi to chybu:
Service 'security.user': Multiple services of type Nette\Security\IAuthenticator found: adminAuthenticator, authenticator

A takhle vypada config:
services:

authenticator: App\Model\Authenticator
adminAuthenticator: AdminModule\AdminAuthenticator
 …

Vubec netusim kde by mohl byt problem, oddelene je totiz mam a na starsi verzi to funguje.

Za nejake rady predem diky! :)

artemevsin
Člen | 61
+
+1
-

oba dva implementují IAuthenticator, takže nette neví kterou implementaci má injectnout, když někde vyžádáš IAuthenticator. Stačí ale u jednoho z nich nastavit v configu autowired: false a už se ti bude injectovat jen ta druhá.

services
	authenticator: App\Model\Authenticator
	adminAuthenticator:
        class: App\Model\AdminAuthenticator
        autowired: false

Když někde budeš vyžadovat AdminAuthenticator, tak ho tam musíš předat ručně

David Kudera
Člen | 455
+
+1
-

nebo podle mě ještě lepší možnost: vojtech-dobes/nette-multi-authenticator ;-)