假设有三个用户当前从三个设备登录 . 其中一个用户(Admin)想要强制注销user2,如何在laravel 5.2中实现?
数据库表结构:: users -> id|name|email|password|remember_token
Update 场景::
user1 --> logged from device 1 [user1 is admin type and has all kind of permission]
user2 --> logged from device 2 [normal user]
user3 --> logged from device 3 [normal user]
目前所有用户都是同时登录的 . user1对user2进行了一些更改,并想重新登录user2,没有办法告诉user2请重新登录,除非让他通过user1注销 . user1如何使user2(远程用户)注销?
鉴于解决方案分析
$userIdToLogout = 2; // it is user2
if (!is_null(Auth::user()) {
if (Auth::user()->id == $userIdToLogout) {
Auth::logout();
}
}
- Auth::user() will return user1 information NOT user2
- So if (Auth::user()->id == $userIdToLogout) condition will never be true
我的分析错了吗?
1 回答
Alexey Mezenin给出的答案是正确的 . 人们并没有关注其他用户的观点 . Auth将返回当前用户信息 .
因此,例如,User1想要记录user2,User1点击将记录user2的href链接 . 单击此链接时,$ usersId将包含user2的id . 现在,当链接重定向到路由时,将调用该函数 . Auth指的是当前会话 . 但是当user2登录并且他的id属于$ usersID时,他的帐户将被注销 .