Authentizacia proti inemu systemu

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

Ahoj

Pisem si vlastny authetikator pre system Mantis a mam problem ze metoda authenticate funguje iba z menom a heslom ale neviem ako a kde naplnit Nette\Security\Identity ak som uz v inom systeme zalogovany.
Predpokladam ze si mam extendnut \Nette\Security\User a zaregistrovat ho do configu ako

services:
	- App\Model\MantisAuthenticator
	user: App\Model\MantisUser

Dalej predpokladam ze si musim prepisat metodu isLoggedIn() kde si musim naplnit Nette\Security\Identity
ale netusim ako do MantisUser dostat databazu z ktorej si dotiahnem data.

Majkl578
Moderator | 1364
+
0
-

metoda authenticate funguje iba z menom a heslom

To není pravda, metoda authenticate přijímá pole, které může obsahovat cokoliv.

Predpokladam ze si mam extendnut \Nette\Security\User

Proč? To rozhodně není potřeba.

Dalej predpokladam ze si musim prepisat metodu isLoggedIn() kde si musim naplnit Nette\Security\Identity

Ne, o to se stará autenticator, který vrací identitu uživatele. Pokud ti nevyhovuje výchozí Nette\Security\Identity, můžeš si napsat vlastní, stačí implementovat rozhraní Nette\Security\IIdentity. (Identitou může být klidně např. entita v Doctrine 2, což je celkem běžná situace.)