【发布时间】: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