由管理员Laravel 5.2注销特定用户

时间:2016-12-06 08:07:30

标签: php laravel-5.2

作为管理员,我想从应用程序中注销特定用户。

我尝试使用以下代码让用户从应用程序注销。

Auth::logout();

但是,不是注销该特定用户,而是让管理员注销。 我从服务器获取会话ID,现在我很困惑如何传递该会话ID以清除特定用户会话以便特定用户登出。

3 个答案:

答案 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}}。