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

Fel*_*eña 13 php laravel laravel-5 laravel-5.2 laravel-authorization

我正在Laravel 5.2中构建一个非常简单的应用程序,但是当使用AuthController的操作注销时,它只是不起作用.我有一个导航栏,它会检查Auth::check()并在调用注销操作后不会更改.

我在routes.php文件中有这个路由:

Route::get('users/logout', 'Auth\AuthController@getLogout');

它在外面

Route::group(['middleware' => ['web']], function () 声明.

我也尝试在AuthController.php文件的末尾添加跟随操作.

public function getLogout() 
{
    $this->auth->logout();
    Session::flush();
    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

你有什么想法?

编辑1

如果我清除Google的Chrome缓存,则可以正常运行.

Azt*_*gic 37

我在Laravel 5.2中也有类似的问题.你应该改变你的路线

Route::get('auth/logout', 'Auth\AuthController@logout');
Run Code Online (Sandbox Code Playgroud)

或者在AuthController构造函数中添加

public function __construct()
{
    $this->middleware('guest', ['except' => ['logout', 'getLogout']]);
}
Run Code Online (Sandbox Code Playgroud)

这对我有用.

  • 将`getLogout`添加到`except`数组对我来说是个窍门. (3认同)

小智 6

使用下面的代码

Auth::logout();
Run Code Online (Sandbox Code Playgroud)

要么

auth()->logout();
Run Code Online (Sandbox Code Playgroud)