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



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

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

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

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

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

最新更新