php - 如何通过记住 token 禁用用户登录?

标签 php mysql laravel authentication cookies

Laravel 允许使用存储在 cookie 中的 remember_token 来验证用户。

在我的 user 表中,我有一个 active 列,它是一个 boolean (1, 0)

例如,如果用户被解雇,您需要禁用他的登录能力;因此您将 active 值更改为 0。

但是你打算用他的 cookies 做什么呢?

注意!我是用一种非常原始的方式写的!问题是如何正确处理这种情况。

最佳答案

由于您无法删除记住 cookie,因此您需要在应用程序中实现检查,以确保所有登录的用户都具有事件状态。

实现此目的的一种方法是实现 auth.login 事件的监听器并检查那里的状态。

class CheckUserStatusHandler {
  public function handle($user) {
    if (!$user->active) Auth::logout($user);
  }
}

注销方法将注销用户删除记住 token 。

然后在您的EventServiceProvider中注册监听器:

protected $listen = [
  'auth.login' => [
        CheckUserStatusHandler::class
    ]
];

关于php - 如何通过记住 token 禁用用户登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627234/

相关文章:

php - 正则表达式在 URL 中查找区域设置

php - 添加 24 小时投票系统时遇到问题?

c# - Entity Framework 4.1 无法创建 MySQL 数据库

mysql - 在不使用子查询或发送额外查询的情况下获取所有找到的行的计数?

php - 在 Laravel 中找不到模型

php - 从特定用户以前从未见过的 mysql 表中提取一个随机 ID

php - MariaDB 使用错误的主机,无法连接 php 应用程序

PHP 显示为文本

java - 从我的 JSON 解析器获取空指针异常

php - Laravel:自定义登录重定向到/home 而不是/welcome 页面