用户登录时,选择了“记住密码”。如何操作能够 让 管理员清除该用户的登录状态 呢?

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel6

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.2

php-fpm 版本:7.2

3). 当前系统

CentOS 7

4). 业务环境

开发环境

5). 相关软件版本

Nginx,MySQL

2. 问题描述?

用户登录时,选择了“记住密码”。如何操作能够 让 管理员清除该用户的登录状态 呢?

3. 您期望得到的结果?

4. 您实际得到的结果?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 18
随波逐流

使用 database 驱动

修改 .env

SESSION_DRIVER=database

添加session迁移并执行

php artisan session:table && php artisan migrate

针对用户 user_id = 1 的用户强制 登出

DB::table('session')->where('user_id','=',1)->delete();
1年前 评论
friendOfTime (楼主) 1年前
Alone88 1年前
随波逐流 (作者) 1年前

好像不能。但是你可以给用户清除登陆状态后设置一个字段,表示清除了登陆状态,用户访问的时候判断是不是有这个状态,有这个状态就直接设置为退出,cookie清掉登录状态。这个可以是一个表也可以放在用户的表里,看系统的设计来。目前可以考虑的就这种处理方式

1年前 评论

字段 remember_token 清空就可以

1年前 评论

把他密码改了

1年前 评论
friendOfTime (楼主) 1年前

是 remember_me 吗? 把 cookie 过期

1年前 评论
friendOfTime (楼主) 1年前
php_yt (作者) 1年前

加个缓存,键中存在关键字段为用户id

登录时自动设置缓存,过期时间和session一致,禁用账号、人为退出登录就清掉缓存

访问页面和请求接口的时候查看缓存是否存在,不存在的话直接调用退出登录

你的退出登录会自动清理session和cookie的

1年前 评论

服务器 删除对应的session id

1年前 评论
friendOfTime (楼主) 1年前

注销这个用户 :blush:

1年前 评论
自由与温暖是遥不可及的梦想

首先要清楚你使用是什么登陆方式或者用的什么扩展包 然后去查看扩展包文档

用户认证《Laravel 9 中文文档》

Passport OAuth 认证

Sanctum API 授权

1年前 评论
周小云 1年前

我们没用 cookie session 这些了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!