sustartx/jwt-redis-multi-auth

JWT Redis 多重认证

v1.2 2023-07-07 10:54 UTC

This package is auto-updated.

Last update: 2024-09-07 15:33:20 UTC


README

描述

在我开发的一个Laravel项目中,我需要使用JWT进行会话和授权操作。由于我通常使用的 tymon/jwt-auth 包已经过时,而且我还需要使用 spatie/laravel-permission 包,所以我开始寻找一个通用包,最终找到了 Samet Şahin Doğan 开发的 sametsahindogan/laravel-jwtredis 包。由于这个包内部存在一些小的依赖问题,我根据自己的需求进行了完全的修改,并尝试以不同的方式重新编写这个包。我用 php-open-source-saver/jwt-auth 替换了 JWT 包,解决了问题。

除了 User 模型之外,所有从 JWTRedisMultiAuthAuthenticatableBaseModel 类扩展的模型都可以用于会话管理。

感谢 Samet Şahin Doğan 为其 laravel-jwtredis 包所做的工作。

我将尽快准备一份关于该包使用的详细内容,并附上一个示例项目。

待办事项

  • 应该能够使用不同的模型进行登录
  • 应该能够为所需的模型生成特定的JWT
  • 应该能够检测出传入的请求将由哪个Guard、Provider和Model处理
  • 在登录过程中应该能够获取权限
  • 应该能够将信息保存到Redis中
  • 应该通过观察者(Observer)在模型中的任何更改时更新Redis数据
  • 应该完成中间件(Middleware)的处理
  • 在登录过程中应该自动检测相关模型,并在Redis键部分中按 $model_adi + $model_id 的格式确定键
  • 当用户更新时应该更新Redis数据
  • 应该启用Refreshable功能
  • 当权限(关系操作)更新时应该更新Redis数据
  • 应该更新响应结构
  • 应该能够通过Cookie和Authorization头信息同时验证token
  • 应该允许开发者决定在Redis中存储哪些用户信息
  • 应该能够根据配置激活或停用Redis
  • 如果收到有效的JWT请求但用户不在Redis中,则应该使用JWT重新创建缓存,并在创建缓存之前在数据库中检查用户是否存在一次
  • 应该更新与Ban状态相关的架构,并检查 banned_statuses 操作
  • 应该合并配置信息,以便在没有发布之前可以工作
  • 应该为2FA情况创建事件
  • 应该更改所有事件架构
  • 应该在用户未登录时生成token

许可证

MIT © Şakir Mehmetoğlu