Jak poslat cookies od Nette\Security\User do mobilni aplikace

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

Chtel by se zeptat, jakym zpusobem do mobilni aplikace poslat cookies od session, ktere si vytvari Nette\Security\User, nebo vlastne od cele session, protoze jsem si vsiml, ze se posila jen jedna cookina. Zajma me kde se kni dostanu. Z aplikace mi prijde pres JSON naka prihlasovaci data, ty si overim, uzivatele zaloguju a potreboval bych zpet do mobilu poslat cookies. A potom pri kazdem requestu se pravdepodobne bude posilat cookies v hlavicce a s tim uz si nette poradi. Ale nevim jak ji prvotne ziskat.

Jan Endel
Člen | 1016
+
+1
-

Proč cookies? Tohle se řeší tokenem, kterým se pak uživatel ověřuje na straně serveru, s nějakou rozumnou expirací.

saimons
Člen | 293
+
0
-

To me take napadlo, ale kdyz pak v aplikaci (napr v nake tride) vyzuzivam tridu User, tak bych ji pak musel nejak naplnit pri kazdem dotazu z aplikace? Nebo jak toto resit? Jeste abych to posal trochu lepe, tak jsem chtel vyuzit strukturu aplikace, kterou pouzivam pro web. Jen nekde v BasePresenteru zjistit odkud prisel request a podle toho to poslat na template/JSON. Ale vyuzivam pres celou aplikaci Nette\Security\User a ACL. Takze jsem si rikal, ze bych nemusel delat webove sluzby a pouzit stavajici strukturu. Ale bez User se neobejdu se soucasnym stavem.

Editoval saimons (3. 4. 2015 14:51)

Filip Procházka
Moderator | 4668
+
+2
-

Použij token který se bude posílat nějakou X-Api-Authorization hlavičkou a potom co ověříš že token je platný a má navázaného uživatele, tak toho uživatele můžeš přihlásit tak, že tak jako ve svém authorizatoru z něj uděláš Identity a nacpeš to do Security\User.

$appUser = $token->getUser();
$identity = $appUser->createIdentity();

$this->user->login($identity);

metoda login totiž přijímá i Identity objekt.