如何在注销后清除缓存在Laravel中

时间:2016-06-03 10:43:09

标签: google-chrome caching laravel-5

这是一个常见的问题。当我注销然后单击浏览器后退按钮时,浏览器会显示网站上最后加载的页面。

我在堆栈上经历了很多链接,大多数建议在注销时清除标题但是没有用。

这是我试过的代码

Route::get('main/logout',function(){


 Session::flush();
 Auth::logout();
 header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
 header("Pragma: no-cache"); // HTTP 1.0.
 header("Expires: 0"); // Proxies.
 session()->flash('alert-success', 'Success logged out');
 return Redirect::to('/');
}); 

更新

我还尝试在头文件

中的APP.blade.php文件中添加它
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="cache-control" content="must-revalidate" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

如果您有任何IDEA请告诉我

谢谢

3 个答案:

答案 0 :(得分:1)

您必须在用户返回的页面上包含以下行,而不是实际的注销页面:

header("Cache-Control: no-cache, no-store, must-revalidate");

但是这样你就失去了浏览器缓存的优势,在大多数情况下这不是一件好事。离开吧。无论如何,用户无法在注销后与服务器进行交互,只检索他已经看过的数据。

答案 1 :(得分:0)

试试这个。

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');

答案 2 :(得分:0)

在您的注销功能中,清除缓存,将此代码放在此处

Artisan::call('cache:clear');