Radosław
Zatoka
projektant /
programista
aplikacji webowych
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" .../>) ?
Tomasz
I.
Pixelforge s.c.,
Mobile Madness
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
projektant /
programista
aplikacji webowych
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
Programista
python/PHP
Temat: cache-control w symfony a zawartosc dostepna po zalogowaniu
Hmmm... zmieniałeś jakieś ustawienia cache?
Radosław
Zatoka
projektant /
programista
aplikacji webowych
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
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 :)
