当前位置: 首页 > 知识库问答 >
问题:

Laravel注销不工作

公良鸿光
2023-03-14

我正在尝试Laravel5.2中的简单注销功能,但我真的不明白我错在哪里。如果有人能帮忙,那就太好了。

这是路线

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

loginControllergetLogout方法:

public function getLogout()
{
    //$this->auth->logout();
    Session::flush();
    Auth::logout();
    return redirect('/');
}

视图中使用此功能的链接:

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

会话存储代码:

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

AuthController构造函数:

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

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

共有2个答案

陈毅
2023-03-14

尝试在路由中更改路由。php与此:

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

对于注销路径,我使用:

{{ url('/logout') }}

通常情况下,如果您需要使用不同的控制器进行特殊操作,请尝试使用:

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

在控制器中。遵循Laravel 5.2文档-

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

public function getLogout()
{
    //$this->auth->logout();
    Auth::logout();
    Session::flush();
    return redirect('/');
}
元景天
2023-03-14

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

方法1:

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

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

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

希望如此,这将清除您的错误。我也有同样的问题,我喜欢独自一人

会话销毁必须像这样使用

Session::forget('name');
$request->session()->flush(); // in your Controller
 类似资料:
  • 我使用的是Laravel5.2框架,我已经使用命令创建了auth。我的AuthController中有以下内容: 这些在我的路线上。php文件: 登录/注册时,一切正常,但当我按下注销按钮时,没有任何变化,我仍然登录。我想要的是在单击注销按钮后重定向到auth/login视图。请帮忙。

  • 我的问题和这里问的很相似 我使用的是Laravel 5.2 我的路线:列表 我的注销链接 注销链接位于标题中。刀身php文件。文件的位置为 我的路线。php 此路由位于中间件的外面 授权控制器。php 当“注销”按钮单击时,其按会话要求重定向并没有结束,因为若我通过URL访问,我仍然登录

  • 我有一个注销功能,在另一个项目中工作,但由于某种原因,在我目前正在处理的项目中不工作。看起来它只是刷新了页面。我查了Symfony的官方留档https://symfony.com/doc/current/security.html但无济于事。希望你们能帮我。 更新:Security.yml: 控制器: 注销小枝: 编辑:我正在使用Symfony 3.4。当我进入页面 /logout它看起来像只是刷

  • 完成注销后,Azure注销页面不会重定向用户。它只返回以下信息: 你注销了你的账户。关闭所有浏览器窗口是个好主意。 我尝试了不同的注销URL,我发现: > https://login.microsoftonline.com/MY_TENANT/oauth2/logout?post_logout_redirect_uri=https://micway.com.au/ https://login.mi

  • 我试图为我们现有的laravel站点(laravel 5.2)的注销功能添加一些逻辑,但它不像登录那样简单。 客户端的现有注销工作正常,但我只想向我的Cognoto实例添加一个调用,以将用户注销他们的Cognoto会话。基本上,当用户单击logout时,我想让他们从网站上注销,就像以前一样,但也要点击我的cognito注销endpoint 我的困惑来自这样一个事实,即auth的现有路由和控制器并不

  • 我正在使用拉威尔护照 如何测试用户注销? 这是我到目前为止所拥有的: 错误方法Illumb\Auth\RequestGuard::注销不存在 Laravel文档讨论了发行和刷新访问令牌,但没有提到撤销它们或执行注销 给定需要身份验证的默认路由 响应状态代码[200]不是禁止状态代码。 发生了什么事?如何使用Passport测试用户注销? 提前谢谢