在zend auth中使用logout脚本时站点缓存的问题

时间:2010-11-21 20:22:39

标签: php ajax zend-framework caching zend-auth

所以我通过ajax调用zend auth clear identity函数,如果ajax返回true(即身份被清除),我只需通过location.reload()重新加载浏览器

通常会发生的事情是该页面包含以下内容:

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

     echo "Welcome";

}

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

     echo "some login form";

}

但是之后由于浏览器缓存了页面....即使我通过ajax(清除身份)调用了注销脚本并重新加载页面,页面仍会显示欢迎屏幕,因为它认为页面没有改变,所以只需显示包含欢迎屏幕的缓存,而不是重新加载时的登录表单......

是否可以手动清除缓存或使用jquery进行某种排序,以便在重新加载时不会只加载缓存?

2 个答案:

答案 0 :(得分:0)

我可能错了,但这不是一般的缓存问题吗?告诉浏览器不要缓存该特定页面,问题应该解决。

答案 1 :(得分:0)

我的建议是不要使您的注销功能成为Ajax。只需将其设为常规链接,例如:/ authentication / logout /

该行动应该这样做:

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

无论如何,这对我有用。

我知道这可能不是一个理想的答案,但我仍然会质疑注销链接是ajax的必要性。