Laravel注销不起作用

Posted

技术标签:

【中文标题】Laravel注销不起作用【英文标题】:Laravel logout not working 【发布时间】:2017-01-07 18:37:19 【问题描述】:

我正在 laravel 5.2 中尝试简单的注销功能,但我真的不明白我错在哪里。如果有人可以提供帮助,那就太好了。

这里是路线

Route::get('logout', 'loginController@getLogout');

loginController getLogout 方法:

public function getLogout()

    //$this->auth->logout();
    Session::flush();
    Auth::logout();
    return redirect('/');

link 在使用此功能的视图中:

<a href="url('logout')">Logout</a>

会话存储代码:

$request->session()->put('name', $username['name']);

AuthController 构造函数:

public function __construct()

    $this->middleware('guest', ['except' => ['logout', 'getLogout']]);

当用户点击注销链接时,它会重定向到根页面,但不会真正破坏会话或注销。它不需要登录即可查看页面(它应该)。

【问题讨论】:

尝试掷骰子("停在这里!");在 getLogout 函数的请求下,看看你是否正在通过它。我不是 100% 但也许你需要把 '/' 放在 url('/logout') 中。 是的,死确实有效。并且没有死,它确实重定向到'/'(根页面)有问题吗? 根据文档,flush() 删除会话中的所有数据。我在我的 laravel 应用程序中使用这条路线。 Route::get('logout', 'Auth\AuthController@logout');通常它可以工作:) 【参考方案1】:

我也有同样的问题,我用方法1纠正了,我用方法2参考了。

方法一:

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

方法二: 或在 AuthController 构造函数中添加

public function __construct()

    $this->middleware('guest', ['except' => ['logout', 'getLogout']]);

希望这会清除您的错误。我有同样的问题,我一个人喜欢这个

Session Destroy 必须这样使用

Session::forget('name');
$request->session()->flush(); // in your Controller

【讨论】:

你好,方法2已经到位,仍然面临问题 还是没有运气!我做了: Session::forget('name'); $request->session()->flush();验证::注销();返回重定向('/'); 用这个试试Route::get('logout', [ 'uses' =&gt; 'Auth\AuthController@getLogout', 'as' =&gt; 'logout' ]);【参考方案2】:

尝试在 routes.php 中更改路由:

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

对于我使用的注销路线:

 url('/logout') 

通常这是有效的,如果你需要使用不同的控制器来做一些特别的事情,请尝试使用:

$request->session()->flush() 

在控制器中。 遵循 Laravel 5.2 文档 -> https://laravel.com/docs/5.2/session.

其他近似,尝试修改控制器中的顺序,也许它会起作用。根据文档, Auth:logout() 将清除所有用户身份验证数据,然后您可以清除其他会话数据。

public function getLogout()

    //$this->auth->logout();
    Auth::logout();
    Session::flush();
    return redirect('/');

【讨论】:

嗯。有什么东西搞砸了。 :D 你有没有评论过旧路线并将新路线放在后面?您还有其他退出方式吗? 是的,我确实评论了旧路线并添加了新路线。并且没有其他退出方式 控制器函数中的操作顺序如何更改,请查看更新后的答案。

以上是关于Laravel注销不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 版本 - 4.2 注销不起作用

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

使用 Vue Router 时 Laravel 路由不起作用

Laravel 5密码重置不起作用

注销按钮操作不起作用

Instagram注销在iPhone中不起作用?