laravel - Laravel 7:禁用登录和自动登录(remember_token)
问题描述
我希望能够在我的 laravel 7 应用程序中禁用某些用户。因此,我在“用户”表中创建了一个“活动”列,当设置为活动 = 0 时,用户无法再登录。
我遇到的问题是“记住我”功能,因为已经登录的用户在我禁用他们的帐户后仍然可以访问该应用程序,因为他们不必通过登录表单。
删除“Users”表中的“remember_token”会对此有什么影响吗?我对一个用户进行了尝试(删除了表中的用户 remember_token),但它没有立即生效,因为此后自动登录仍然有效。但也许我在这里遗漏了一些东西。
附加信息:我正在使用 Laravel Passport 进行身份验证。
解决方案
我决定使用中间件解决方案,因为我不想减少整体 SESSION_LIFETIME。
我创建了一个名为“VerifyUserState”的额外中间件,因为我没有成功通过 Auth::user() 或 $this->auth 在 Authenticated.php 中间件的身份验证/句柄函数中读取用户的“活动”值。
我按照本教程实现了这一点: https ://www.itechempires.com/2019/08/how-to-create-configure-and-use-custom-middleware-in-laravel-5-8/
现在它可以根据需要工作。
推荐阅读
- sharepoint - 用于上传文件并复制到 Ms 团队的 Sharepoint API
- javascript - 有没有办法在画布上放置多个相同的功能
- mongodb - 迁移到 MongoDB Atlas 后,以前的用户无法进行身份验证
- python - 使用 Python 和 PostgreSQL 管理多个类别树
- python - 无法在 Ananconda 中创建新环境或安装库
- ruby-on-rails - ActiveRecord 任务在错误的环境中执行,无论何时
- java - 标记由非单词字符分隔的单词,单引号除外
- python - 使用 PyQt5 绘制正确的网格
- python - 重采样(boostrap)回归问题的连续数据数据集
- responsive-design - Chrome 响应式显示与 Firefox 不同