Ako prihlásiť usera z Facebooku a obísť authentikátor

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

Nie som si istý, či som správne položil otázku.
Chcem implemmentovať Facebook login api ale neviem ako vytvoriť plnohodnotnú inštanciu usera v presentery.
Aký je prosím vás rozdiel medzi volaním

return new Nette\Security\Identity($row[self::COLUMN_ID], $rolesArr, $userArr);

a

$this->getUser()->login($values->user_name, $values->password);

Ja by som vlastne chcel obísť triedu userManager, ktorá má nastarosti autentizáciu. Z metódy authenticate vypadne práve to return new ..\Identity().
Dá sa to obísť, alebo musím prepísať ten authentikátor?
A niesom si istý, či som neni úplne mimo…

Editoval Čamo (28. 2. 2015 0:25)

David Matějka
Moderator | 6445
+
+1
-

Nejdriv, na facebook doporucuju kdyby/facebook

A co se tyce obejiti authenticatoru, kdyby/facebook to ma taky popsany v doc.

Ve zkratce: do $this->user->login() muzes rovnou poslat vytvorenou identitu

Čamo
Člen | 798
+
0
-

Ok skúsim to, zatiaľ díky a gratulujem k povýšeniu.

Čamo
Člen | 798
+
0
-

Hm skúsil som to s tou identitou, ale nefunguje mi to. Mám to takto:

$userArr = array(
	'email' => $fbUser->email,
	'user_name' => $fbUser->name,
);
$identity = new Nette\Security\Identity(1, array('guest'), $userArr);
$this->getUser()->login($identity);

Keď vypíšem $user->user_name tak je tam predošlá identita z originál autentifikátora, ktorého som pred tým odhlásil.

EDIT:
Ok chyba bola syntaktická, už to funguje.

Editoval Čamo (28. 2. 2015 1:20)