Skip to content

Releases: Tinywan/webman-jwt

v1.15.0

26 Feb 03:43
bd1943f

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.14.1...v1.15.0

v1.14.1

26 Feb 02:53

Choose a tag to compare

1.14.0 版本开始,出于安全考虑新增了密钥长度验证。1.14.0 以下版本,基本不检查长度。1.14.0 及以上版本:强制检查。

各个算法的最小长度要求(HS* 系列最常见)。插件大于版本 >=1.14.0 强制要求

算法 最低密钥长度(字节) 字符数参考(UTF-8) 推荐生成方式
HS256 32 字节 ≥32 字符 bin2hex(random_bytes(32)) → 64 hex 字符
HS384 48 字节 ≥48 字符 random_bytes(48)
HS512 64 字节 ≥64 字符 random_bytes(64)

Full Changelog: v1.14.0...v1.14.1

v1.13.0

02 Sep 07:42

Choose a tag to compare

Full Changelog: v1.12.1...v1.13.0

● 代码优化检查结果 #39

✅ 检查通过! 你优化后的代码运行正常,主要改进包括:

  1. RedisHandler.php 的优化:
  • ✅ 移除了测试环境相关的配置逻辑
  • ✅ 简化了 getJwtConfig() 方法,现在只检查 config() 函数是否存在
  • ✅ 保留了默认配置 ['leeway' => 60] 作为后备
  • ✅ 简化了 isAvailable() 方法,移除了测试环境检查
  1. JwtToken.php 的优化:
  • ✅ 移除了测试环境配置加载逻辑
  • ✅ 简化了 _getConfig() 方法,现在直接调用 config() 函数
  1. 核心功能保持完整:
  • ✅ Leeway 时间计算功能正常(7200 + 60 = 7260)
  • ✅ 语法检查通过
  • ✅ 功能验证通过
  1. 代码质量提升:
  • 更简洁:移除了不必要的测试环境判断
  • 更稳定:减少了环境依赖
  • 更易维护:逻辑更清晰,减少了复杂度

优化后的代码在保持原有功能的同时,提高了代码的可读性和可维护性。这是一个很好的重构!

v1.12.1

30 Aug 01:11
e7bcf91

Choose a tag to compare

What's Changed

  • fix: 修正 handleSingleDeviceToken 兼容 refresh token by @je8903042009 in #38

New Contributors

Full Changelog: v1.12.0...v1.12.1

Release v1.12.0: Redis错误处理优化和代码重构

02 Sep 11:57

Choose a tag to compare

🚀 Release v1.12.0 #39

✨ 主要特性

🔧 Redis错误处理优化

  • 新增RedisConnectionException异常类: 专门处理Redis连接问题
  • 完善连接状态检查: 所有Redis操作前都会检查连接状态
  • 统一错误处理机制: 新增safeExecute()方法统一处理Redis异常
  • 增强异常信息: 提供更详细的错误信息和错误码

📦 代码重构和优化

  • 提取重复代码: 新增handleSingleDeviceToken()公共方法,统一处理单设备登录逻辑
  • 参数验证统一化: 新增validateRedisParams()方法,统一TTL和token参数验证
  • 键名生成优化: 新增generateKey()方法,统一Redis键名生成逻辑
  • 代码复用性提升: 从3处重复代码减少到1个公共方法,减少约30行重复代码

🛡️ 健壮性增强

  • 连接状态监控: 新增isAvailable()方法检查Redis可用性
  • 参数验证完善: 严格验证TTL和token参数的有效性
  • 操作结果验证: 所有Redis操作都验证返回值,确保操作成功
  • 边界条件处理: 完善各种异常情况的处理逻辑

📚 文档和测试改进

  • 完善PHPDoc注释: 提供更详细的参数和返回值说明
  • 增强单元测试: 新增Redis可用性、参数验证、异常情况等测试用例
  • 类型声明优化: 完善类型声明,保持PHP 7.4兼容性

📊 统计信息

  • 4个文件 被修改
  • 240行 新增代码
  • 36行 删除代码
  • 1个新文件 创建 (RedisConnectionException.php)

🔧 技术细节

新增方法

  • RedisHandler::checkConnection() - 检查Redis连接状态
  • RedisHandler::generateKey() - 生成Redis键名
  • RedisHandler::safeExecute() - 安全执行Redis操作
  • RedisHandler::validateRedisParams() - 验证Redis操作参数
  • RedisHandler::isAvailable() - 检查Redis可用性
  • JwtToken::handleSingleDeviceToken() - 处理单设备登录逻辑

新增异常类

  • RedisConnectionException - Redis连接异常,错误码500001

兼容性

  • ✅ 保持PHP 7.1+版本兼容性
  • ✅ 保持向后兼容性,不影响现有API
  • ✅ 所有现有功能保持不变

🎉 升级建议

  1. 推荐升级: 本次优化提升了代码的健壮性和可维护性
  2. 无破坏性变更: 现有代码无需修改即可升级
  3. 测试验证: 建议在测试环境验证Redis连接和错误处理

🤝 贡献

感谢所有贡献者的支持和反馈!

📄 许可证

MIT License

ChangeLog v1.11.3

10 Apr 12:07
1b067c9

Choose a tag to compare

What's Changed

  • 修复ES系列和PS系列算法无法正常使用的问题并修正注释,仅提示已支持的算法 by @Rodots in #34

New Contributors

Full Changelog: v1.11.2...v1.11.3

ChangeLog v1.11.2

22 Mar 09:15
2f8f7e4

Choose a tag to compare

What's Changed

  • Update composer.json by @YouZiXiL in #27
  • 修正提示语 by @YouZiXiL in #31

New Contributors

  • @YouZiXiL made their first contribution in #27

Full Changelog: v1.11.1...v1.11.2

ChangeLog v1.11.1

08 Feb 03:33

Choose a tag to compare

Full Changelog: v1.11.0...v1.11.1

  • fix:$token 参数隐式可空的参数修改为显式可空类型,以避免出现弃用警告或错误。

ChangeLog v1.11.0

07 Feb 02:58
a80aaa2

Choose a tag to compare

ChangeLog v1.10.1

09 Jul 12:09
ccc7e6d

Choose a tag to compare

What's Changed

  • 增加刷新令牌时extend数据的获取与传递 by @EagriSiol in #22

New Contributors

Full Changelog: v1.10.0...v1.10.1