问答 / 0 / 18 / 创建于 2年前 / 更新于 2年前
Laravel6
PHP 版本:7.2
php-fpm 版本:7.2
CentOS 7
开发环境
Nginx,MySQL
用户登录时,选择了“记住密码”。如何操作能够 让 管理员清除该用户的登录状态 呢?
把他密码改了
是 remember_me 吗? 把 cookie 过期
@friendOfTime 浏览器查看remember me的cookie名称 过期了就行,同时把 session 清除,记住我只清除 session 不行
好像不能。但是你可以给用户清除登陆状态后设置一个字段,表示清除了登陆状态,用户访问的时候判断是不是有这个状态,有这个状态就直接设置为退出,cookie清掉登录状态。这个可以是一个表也可以放在用户的表里,看系统的设计来。目前可以考虑的就这种处理方式
加个缓存,键中存在关键字段为用户id
登录时自动设置缓存,过期时间和session一致,禁用账号、人为退出登录就清掉缓存
访问页面和请求接口的时候查看缓存是否存在,不存在的话直接调用退出登录
你的退出登录会自动清理session和cookie的
服务器 删除对应的session id
使用 database 驱动
database
修改 .env
.env
SESSION_DRIVER=database
添加session迁移并执行
php artisan session:table && php artisan migrate
针对用户 user_id = 1 的用户强制 登出
user_id = 1
登出
DB::table('session')->where('user_id','=',1)->delete();
注销这个用户 :blush:
首先要清楚你使用是什么登陆方式或者用的什么扩展包 然后去查看扩展包文档
用户认证《Laravel 9 中文文档》
Passport OAuth 认证
Sanctum API 授权
字段 remember_token 清空就可以
我们没用 cookie session 这些了
我要举报该,理由是:
把他密码改了
是 remember_me 吗? 把 cookie 过期
好像不能。但是你可以给用户清除登陆状态后设置一个字段,表示清除了登陆状态,用户访问的时候判断是不是有这个状态,有这个状态就直接设置为退出,cookie清掉登录状态。这个可以是一个表也可以放在用户的表里,看系统的设计来。目前可以考虑的就这种处理方式
加个缓存,键中存在关键字段为用户id
登录时自动设置缓存,过期时间和session一致,禁用账号、人为退出登录就清掉缓存
访问页面和请求接口的时候查看缓存是否存在,不存在的话直接调用退出登录
你的退出登录会自动清理session和cookie的
服务器 删除对应的session id
使用
database
驱动修改
.env
添加session迁移并执行
针对用户
user_id = 1
的用户强制登出
注销这个用户 :blush:
首先要清楚你使用是什么登陆方式或者用的什么扩展包 然后去查看扩展包文档
用户认证《Laravel 9 中文文档》
Passport OAuth 认证
Sanctum API 授权
字段 remember_token 清空就可以
我们没用 cookie session 这些了