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

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. 您实际得到的结果?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 15

把他密码改了

2周前 评论
friendOfTime (楼主) 2周前

是 remember_me 吗? 把 cookie 过期

2周前 评论
friendOfTime (楼主) 2周前
php_yt (作者) 2周前

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

2周前 评论

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

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

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

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

1周前 评论

服务器 删除对应的session id

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

使用 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周前

注销这个用户 :blush:

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

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

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

Passport OAuth 认证

Sanctum API 授权

6天前 评论

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