Laravel 5.2:Auth::logout() 不起作用

我正在 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']]);
}

这对我有用.

相关文章