Radosław Zatoka

Radosław Zatoka CTO / Symfony 2
developer

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Jakis czas temu rozpoczalem swoja przygode z Symfony i sytuacja, ktora zdziwila mnie zaraz po wykonaniu prostego modulu logowania.

Mianowicie po wylogowaniu (
$this->clearCredentials();
$this->setAuthenticated(false);
//a nawet wyczyszczeniu calej sesji
$this->getAttributeHolder()->clear();
)
i kliknieciu przycisku wstecz przegladarki, serwowana jest z powrotem chroniona zawartosc z pamieci podrecznej przegladarki. Dopiero kolejne klikniecie wewnatrz strony, ktorej nie powinnismy juz widziec (!), wykonuje redirecta na panel logowania, ktory umieszczony jest w kodzie.

Podejrzewajac problem z cache-control, ustawilem w pliku view.yml
http_metas:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

co wyeliminowalo problem, ale wstawilo mi w/w znacznik do kodu html

moje dwa pytania:
- czy wiecie moze co symfony kombinuje z tymi headersami (z podobnym problemem bez uzycia sf sie nie spotkalem, w logach debugToolbar nie widac tez zeby byly wysylane jakies dodatkowe headers)?
- jak mozna zapobiec temu w inny sposob (bez modyfikacji view.yml, a bardziej na poziomie kodu, zeby nie stosowac znacznika <meta http-equiv="Cache-Control" .../>) ?

konto usunięte

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Głowy nie daje ale przycisk WSTECZ przeglądarki cachuje sam sobie stronę i tu chyba nic się nie poradzi, tak mi sie wydaje. Możesz ewentualnie zrobić tak, żeby po wylogowaniu robić redirecta do akcji która sprawdza logowanie. Jak już nie zalogowany, wtedy przekierowuje do stronki logowania. Nie znam dobrych rozwiązań dla takich sytuacji, także nawet nie wiem czy to się sprawdzi.
Radosław Zatoka

Radosław Zatoka CTO / Symfony 2
developer

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Niestety nie.
Jak zrobisz sobie logowanie w czystym PHP zapisujac i czyszczac pole np. w $_SESSION['access'], to po wylogowaniu i kliknieciu BACK strona przeladowuje sie i odpowiedni warunek moze przekierowac z powrotem na formularz.
W Symfony niestety domyslnie nie przeladowuje tylko laduje z cache'a i warunek sie nie wykonuje.
Potwierdza to zreszta fakt, ze po dodaniu tego nieszczesnego Cache-Control wszystko jest juz ok.
Grzegorz Śliwiński

Grzegorz Śliwiński Programista python

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Hmmm... zmieniałeś jakieś ustawienia cache?
Radosław Zatoka

Radosław Zatoka CTO / Symfony 2
developer

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Nie, nic nie zmienialem.
Probowalem to na lokalu, hostingu i dedyku oraz pod wszystkimi popularniejszymi przegladarkami (firefox, ie, opera, chrome), wszedzie bylo tak samo, wiec wydaje mi sie, ze problem tkwi gdzies w symfony, a nie na zewnatrz.

Co ciekawe, bardzo trudno znalezc cos na ten temat na necie w ogole.
Udalo mi sie natrafic tylko na jeden watek na forum symfony, gdzie wlasnie radzono dodac Cache-Control do view.yml.
Musze jeszcze sprawdzic, jak sprawa sie ma przy korzystaniu z sfGuard...
Michał Gozdera

Michał Gozdera Development Team
Manager, PayU S.A. /
IT Toruń

Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu

Radosław Zatoka:
Musze jeszcze sprawdzic, jak sprawa sie ma przy korzystaniu z sfGuard...

Dokładnie tak samo :)

Następna dyskusja:

sfSimpleCms jest potrzebne ...




Wyślij zaproszenie do