Próbuję zrobić logowanie się na stronę przy pomocy HWIOAuthBundle i FOSUserBundle. Facebooka skonfigurowałem korzystając tego tutorialu. Wszystko działa (tak jakby). Potrzebuję jeszcze logowania się przy pomocy Twittera. I tu pojawiają się schody.
Dodałem w config.yml parametry twittera. Dodałem path w security.yml, Dodałem funkcję (która nic nie robi, ale inaczej nie działało logowanie się przez FB, więc dodałem i dla Twittera). Dodałem case w OAuthUserProvider. Zaktualizowałem encję i zaktualizowałem DB. Na początku wszystko działało prawidłowo i udało mi się "zalogować" korzystając z Twittera. Jednak nie miałem zaktualizowanej encji i nowy użytkownik nie został dodany do DB. Zaktualizowałem encję, ale od tej pory wszystko się pozypało i przy próbie logowania się przy pomocy twittera wywala mi wyjątek:
No route found for "GET /oauth/login" (from "http://dev.marek.lt/web/app_dev.php/register")
Z facebookiem wszystko jest w porządku, a Twitter nie działa.
routing.yml
Dodałem w config.yml parametry twittera. Dodałem path w security.yml, Dodałem funkcję (która nic nie robi, ale inaczej nie działało logowanie się przez FB, więc dodałem i dla Twittera). Dodałem case w OAuthUserProvider. Zaktualizowałem encję i zaktualizowałem DB. Na początku wszystko działało prawidłowo i udało mi się "zalogować" korzystając z Twittera. Jednak nie miałem zaktualizowanej encji i nowy użytkownik nie został dodany do DB. Zaktualizowałem encję, ale od tej pory wszystko się pozypało i przy próbie logowania się przy pomocy twittera wywala mi wyjątek:
No route found for "GET /oauth/login" (from "http://dev.marek.lt/web/app_dev.php/register")
Z facebookiem wszystko jest w porządku, a Twitter nie działa.
routing.yml
Kilka dni temu pytalem na mikro, dlaczego robiąc funkcję remember me, nie jest generowane ciasteczko. Otóż sytuację z ciasteczkiem dało się rozwiązać. Już się generuje. Problem jest teraz inny, jeżeli wywalam ciasteczko PHPSESSID, a REMEMBERME nadal jest ważne, to użytkownik zostaje wylogowany. Czyli wychodzi na to, że #symfony2 nie sprawdza czy jest ciasteczko REMEMBERME, a użytkownik jest zalogowany tylko tyle czasu ile sesja jest aktywna. W jaki sposób zmusić #sf2, aby nie wylogowało użytkownika po zakończeniu sesji,a dopiero gdy ciasteczko REMEMBERME przestanie być ważne?
Załączam też gista z formularzem, ustawieniami security.yml i SecurityController.php (liniki 57-70), w którym to generuję ciastko rememberme.
Nie wiem czy poprawnie rozumiem jak działa remember me, ale moim zdaniem ma być tak:
a) 'remember me' jest odznaczone = jestem zalogowany póki trwa sesja (wylogowuje mnie, jak PHPSESSID traci ważność).
b) 'remember me' jest zaznaczone = jestem zalogowany, póki ciasteczko REMEMBERME jest ważne.
Jeżeli wszystko zależy od