问题描述
我正在 Laravel 5.2 中构建一个非常简单的应用程序,但是当使用 AuthController 的操作注销时,它根本不起作用.我有一个导航栏,用于检查 Auth::check() 并且在调用注销操作后它不会改变.
I'm building a very simple app in Laravel 5.2, but when using AuthController's action to log out, it just simply doesn't work. I have a nav bar which checks for Auth::check() and it doesn't change after calling the log out action.
我在 routes.php 文件中有这个路由:
I have this route inside the routes.php file:
Route::get('users/logout', 'AuthAuthController@getLogout');
它在外面
Route::group(['middleware' => ['web']], function () 语句.
我也尝试在 AuthController.php 文件的末尾添加以下操作.
I did also try to add the follow action at the end of the AuthController.php file.
public function getLogout() { $this->auth->logout(); Session::flush(); return redirect('/'); }
你有什么想法吗?
编辑 1
如果我清除 Google 的 Chrome 缓存,它就可以工作.
If I clear Google's Chrome cache, it works.
推荐答案
我在 Laravel 5.2 中也遇到过类似的问题.您应该将路线更改为
I also had similar problem in Laravel 5.2. You should change your route to
Route::get('auth/logout', 'AuthAuthController@logout');
或在 AuthController 构造函数中添加
or in AuthController constructor add
public function __construct() { $this->middleware('guest', ['except' => ['logout', 'getLogout']]); }
这对我有用.