Laravel 使用 flush() 或 forget() 时会话不会被删除

Laravel Session does not deleted when using flush() or forget()

我正在尝试创建一个使用 Session 变量的 api。这是我所做的:

  1. 登录
return auth('api')->attempt($credentials);
  1. 调用 api 将变量 test 保存到 Session
Session::put('test', $venueId);
  1. 注销。在 logoutController 中,调用 Session::flush()(我也尝试使用 Session::forget('test'))。
Session::flush();
// Session::forget('test');
auth()->logout();
  1. 重新登录。
  2. 随机调用Session:all()api。 => 变量 test 仍然存在。

我已经检查了数据库,当我在控制器中使用 auth()->logout() 时,数据库在会话 table 中创建一个新会话,其有效负载与步骤 2 中的有效负载相同。当我再次登录时,它似乎使用第二个会话(在第 3 步注销后创建)来获取价值。

我该如何处理?我希望在用户注销后刷新所有会话

我发现了问题。我使用了多重身份验证,所以我有 2 个注销控制器,我把 Session::flush() 放到了错误的控制器上。将 Session::flush() 放入正确的控制器中,它起作用了。