如何禁用CakePHP中注销缓存(How to disable cache on logout in

2019-10-18 03:38发布

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

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

现在,我使用下面的函数中的AppController:

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

但我怀疑,这完全禁用缓存过程。 请帮忙!

Answer 1:

我不相信,如果他们点击后退按钮退出后用户自动重新登录到您的网站。 我被你的问题猜测,当用户不按注销后返回按钮,你希望他们被转发到登录页面。 不幸的是,浏览器可以高速缓存的最后一页是上,给用户的错觉,他们仍然登录。请放心,当他们试图做一些事情,他们需要先登录,会话ID存储在cookie中,将不被认可,他们将被转发到认证页面。

一种可能的解决办法是将用户重定向到另一个控制器动作注销发生之后 - 这将引进,并在浏览器历史上的附加过渡。 我不知道,如果他们单击后退两次,虽然会发生什么。



Answer 2:

添加到您的应用程序的首部页:

<?php
  header("Cache-Control: no-cache, no-store, must-revalidate"); 
  header("Pragma: no-cache");
  header("Expires: 0");
?>


文章来源: How to disable cache on logout in CakePHP