1

我正在使用 cakephp 2.3 版本。我只需要在用户注销时禁用缓存。这是为了防止在按下后退按钮时登录。

但是对于所有其他情况,我不想打扰缓存机制。

现在我在 AppController 中使用以下函数:

public function beforeRender() {
    $this->response->disableCache();
}

但我怀疑它是否会完全禁用缓存过程。请帮忙!

4

2 回答 2

3

如果用户在注销后单击后退按钮,我不相信用户会自动重新登录到您的网站。我猜你的问题是,当用户在注销后按下后退按钮时,你希望他们被转发到登录页面。不幸的是,浏览器可能会缓存它所在的最后一个页面,并给用户一种他们仍在登录的错觉。请放心,当他们尝试执行需要登录的操作时,cookie 中存储的会话 ID , 不会被识别,它们将被转发到认证页面。

一种可能的解决方法是在注销后将用户重定向到另一个控制器操作 - 这将在浏览器历史记录中引入额外的转换。我不知道如果他们点击两次会发生什么。

于 2013-05-09T09:07:01.650 回答
1

将此添加到应用程序的标题页:

<?php
  header("Cache-Control: no-cache, no-store, must-revalidate"); 
  header("Pragma: no-cache");
  header("Expires: 0");
?>
于 2018-07-31T11:01:16.707 回答