Laravel 使用 flush() 或 forget() 时会话不会被删除
Laravel Session does not deleted when using flush() or forget()
我正在尝试创建一个使用 Session
变量的 api
。这是我所做的:
- 登录
return auth('api')->attempt($credentials);
- 调用
api
将变量 test
保存到 Session
Session::put('test', $venueId);
- 注销。在
logoutController
中,调用 Session::flush()
(我也尝试使用 Session::forget('test')
)。
Session::flush();
// Session::forget('test');
auth()->logout();
- 重新登录。
- 随机调用
Session:all()
api
。 => 变量 test
仍然存在。
我已经检查了数据库,当我在控制器中使用 auth()->logout()
时,数据库在会话 table 中创建一个新会话,其有效负载与步骤 2 中的有效负载相同。当我再次登录时,它似乎使用第二个会话(在第 3 步注销后创建)来获取价值。
我该如何处理?我希望在用户注销后刷新所有会话
我发现了问题。我使用了多重身份验证,所以我有 2 个注销控制器,我把 Session::flush()
放到了错误的控制器上。将 Session::flush()
放入正确的控制器中,它起作用了。
我正在尝试创建一个使用 Session
变量的 api
。这是我所做的:
- 登录
return auth('api')->attempt($credentials);
- 调用
api
将变量test
保存到 Session
Session::put('test', $venueId);
- 注销。在
logoutController
中,调用Session::flush()
(我也尝试使用Session::forget('test')
)。
Session::flush();
// Session::forget('test');
auth()->logout();
- 重新登录。
- 随机调用
Session:all()
api
。 => 变量test
仍然存在。
我已经检查了数据库,当我在控制器中使用 auth()->logout()
时,数据库在会话 table 中创建一个新会话,其有效负载与步骤 2 中的有效负载相同。当我再次登录时,它似乎使用第二个会话(在第 3 步注销后创建)来获取价值。
我该如何处理?我希望在用户注销后刷新所有会话
我发现了问题。我使用了多重身份验证,所以我有 2 个注销控制器,我把 Session::flush()
放到了错误的控制器上。将 Session::flush()
放入正确的控制器中,它起作用了。