Laravel 7:禁用登录和自动登录remember_token

问题描述

我希望能够在我的 laravel 7 应用程序中禁用某些用户。因此,我在“用户”表中创建了一个“活动”列,当设置为活动 = 0 时,用户将无法再登录

我遇到的问题是“记住我”功能,因为已经登录用户在我禁用他们的帐户后仍然可以访问该应用程序,因为他们不必通过登录表单。

删除“Users”表中的“remember_token”会影响这个吗?我与用户一起尝试过(删除了表中的用户 remember_token),但没有立即生效,因为此后自动登录仍然有效。但也许我在这里遗漏了一些东西。

附加信息:我使用 Laravel Passport 进行身份验证。

解决方法

我决定采用中间件解决方案,因为我不想减少整体 SESSION_LIFETIME。

我创建了一个名为“VerifyUserState”的额外中间件,因为我没有成功通过 Auth::user() 或 $this->auth 在 Authenticated 中的 authentication/handle 函数中读取用户的“活动”值。 php 中间件。

我按照本教程来实现这一点: https://www.itechempires.com/2019/08/how-to-create-configure-and-use-custom-middleware-in-laravel-5-8/

现在它可以根据需要工作了。