作为管理员,我想从应用程序中注销特定用户。
我尝试使用以下代码让用户从应用程序注销。
Auth::logout();
但是,不是注销该特定用户,而是让管理员注销。 我从服务器获取会话ID,现在我很困惑如何传递该会话ID以清除特定用户会话以便特定用户登出。
答案 0 :(得分:1)
这样的事可能会对你有所帮助。 让我知道
$userToLogout = User::find(1); // Any userId you want to logout
Auth::setUser($userToLogout);
Auth::logout();
答案 1 :(得分:0)
你不能这样做,因为所有Auth:logout都是删除会话cookie。
当然,您无法访问其他用户的Cookie。
根据会话驱动程序的不同,您可以使会话服务器端无效。
例如,如果驱动程序是数据库,则可以像删除会话ID一样简单的数据库查询(但是,您必须解析所有会话有效负载以找到正确的用户ID)
一种更简单的方法是将session_token字段添加到用户表。登录时,您将生成一个随机值并将其存储在会话和数据库中。然后在中间件中,检查DB的session_token与会话中的session_token匹配。
要注销用户,只需在数据库中重置令牌,我们就在这里!
答案 2 :(得分:0)
例如,您可以在名为force_logout
的用户表中创建新列。然后在每个请求(在您的身份验证中间件中),检查此force_logout
。然后,您可以使用Auth::logout();
force_logout
1
force_logout
来注销用户。
因此,如果您想要记录任何用户,只需要提出用户1
的{{1}}。