проблема с кэшем сайта при использовании скрипта выхода из системы в Zend Auth - PullRequest
0 голосов
/ 21 ноября 2010

, поэтому я вызываю функцию zend auth clear identity через ajax, и если ajax возвращает true (т. Е. Идентификация очищена), я просто перезагружаю браузер через location.reload ()

, и обычно происходит следующее:что страница имеет следующее:

if ($this->auth->hasIdentity()) {

     echo "Welcome";

}

и

if (!$this->auth->hasIdentity()) {

     echo "some login form";

}

, но так как страница кэшируется браузером .... хотя я и вызвал скрипт выхода из системы черезajax (который очищает личность) и перезагружает страницу, страница по-прежнему отображает экран приветствия, поскольку считает, что страница не изменилась, и просто отображает кэш, содержащий экран приветствия, а не форму входа в систему при перезагрузке.....

есть ли способ очистить кэш вручную или что-то вроде использования jquery, чтобы он не загружал кэш при перезагрузке?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2010

Моя рекомендация - не выполнять функцию выхода из системы Ajax. Просто сделайте его обычной ссылкой, например: / authentication / logout /

Это действие должно сделать это:

public function logoutAction() {
        $auth = Zend_Auth::getInstance();
        $auth->clearIdentity();
        $this->_redirect('/authentication/login');
}

Это все равно работает для меня.

Я понимаю, что это не может быть идеальным ответом, но я все равно оспариваю необходимость ссылки на выход из системы ajax.

0 голосов
/ 22 ноября 2010

Возможно, я ошибаюсь, но разве это вообще не является проблемой кеширования? Скажите браузеру не кэшировать эту конкретную страницу, и проблема должна быть решена.

...