【问题标题】:Laravel Sanctum with SPA doesn't handle logout correctly. I doesn't seem to maintain the logout status. What am I missing?带有 SPA 的 Laravel Sanctum 无法正确处理注销。我似乎没有保持注销状态。我错过了什么?
【发布时间】:2021-03-26 02:53:13
【问题描述】:

所以我的网站(带有 React 的 Laravel)似乎无法按照我想要的方式运行。我使用 Laravel Sanctum 进行(SPA,所以 cookie,而不是令牌)身份验证。如果我使用正常注销,它似乎注销,但刷新后,我仍然通过身份验证。我创建了自己的注销控制器来检查,但奇怪的是,它似乎注销了......但刷新后我没有。带有我尝试过的东西的控制器:

        Auth::guard('web')->logout();

        if (!Auth::check()) {
            dump('Logged out!');
        }

        $sessionId = $request->session()->getId();

        if($request->session()->invalidate()){
            dump('Session invalidated!');
        }

        $request->session()->regenerate();
        $request->session()->regenerateToken();
        $request->session()->flush();
        $request->session()->remove($sessionId);
        session_unset();
        Session::flush();
        Session::forget($sessionId);

        $cookie = Cookie::forget($sessionId);

我知道所有这些都是多余的,但这只是为了展示我尝试过的东西(我在网上找到了类似问题的答案)。奇怪的是,转储吐出我已注销并且会话无效......但是当我进行 Axios 调用(或刷新后)进行检查时,我仍然登录。我检查了Axios 调用会吐出Auth::user();

我尝试使用忘记删除会话 cookie,但这对 cookie 也没有任何作用。看起来会话没有失效(我认为),但转储说它是。我错过了什么?非常感谢任何帮助!

【问题讨论】:

    标签: reactjs laravel authentication session single-page-application


    【解决方案1】:

    [已解决] 所以我尝试了一些其他的东西......显然重定向在其中起作用! Laravel 重定向没有被触发,因为我在前端注销方法上使用了 React 重定向。删除前端重定向触发了后端 Laravel 重定向......然后刷新后我确实退出了!耶。此外,转储信息(在 php 中使用 dump())会阻止成功注销!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-02
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2021-11-21
      • 2023-01-09
      • 2016-11-15
      相关资源
      最近更新 更多