我正在使用一个额外的控制器实现基本的登录注销功能,只是为了检查登录用户的页面可访问性。当我登录并单击后退按钮时,我被重定向到页面,我开始在右上角看到注册和登录按钮,这表明我已注销。但是我仍然可以单击导航链接,这些链接应该只能由登录用户访问。下面是代码片段。
Route::group(['middleware' => 'web'], function () {
Route::get('/', function () {
return view('welcome');
});
Route::resource('notices', 'NoticesController');
Route::auth();
});
我的控制器
class NoticesController extends Controller
{
//
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return 'hello world';
}
}
刀片文件片段:
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
<li><a href="{{ url('/notices') }}">Home</a></li>
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ url('/login') }}">Login</a></li>
<li><a href="{{ url('/register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ url('/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
</ul>
</li>
@endif
</ul>
</div>
</div>
当我的注册和登录选项在右上角可见时,我不希望访问/notices 路由。请帮忙。
在视图中,在所有其他操作之前放置此代码,它将告诉浏览器不要缓存页面。
<?php
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
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");
?>
这是浏览器的缓存内存问题。浏览器的缓存存储所有内容。因此,当我们按下后退按钮时,它会后退一步。我在我的项目中也遇到了这个问题。但是,是的,如果您想在任何特定页面中解决此问题,请通过此链接转到:
http://www.codeproject.com/Tips/549347/Browser-Back-Button-Issue-After-Logout
也许这对你有帮助!