Releases: Tinywan/webman-jwt
Releases · Tinywan/webman-jwt
v1.15.0
v1.14.1
从 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
Full Changelog: v1.12.1...v1.13.0
● 代码优化检查结果 #39
✅ 检查通过! 你优化后的代码运行正常,主要改进包括:
- RedisHandler.php 的优化:
- ✅ 移除了测试环境相关的配置逻辑
- ✅ 简化了 getJwtConfig() 方法,现在只检查 config() 函数是否存在
- ✅ 保留了默认配置 ['leeway' => 60] 作为后备
- ✅ 简化了 isAvailable() 方法,移除了测试环境检查
- JwtToken.php 的优化:
- ✅ 移除了测试环境配置加载逻辑
- ✅ 简化了 _getConfig() 方法,现在直接调用 config() 函数
- 核心功能保持完整:
- ✅ Leeway 时间计算功能正常(7200 + 60 = 7260)
- ✅ 语法检查通过
- ✅ 功能验证通过
- 代码质量提升:
- 更简洁:移除了不必要的测试环境判断
- 更稳定:减少了环境依赖
- 更易维护:逻辑更清晰,减少了复杂度
优化后的代码在保持原有功能的同时,提高了代码的可读性和可维护性。这是一个很好的重构!
v1.12.1
What's Changed
- fix: 修正 handleSingleDeviceToken 兼容 refresh token by @je8903042009 in #38
New Contributors
- @je8903042009 made their first contribution in #38
Full Changelog: v1.12.0...v1.12.1
Release v1.12.0: Redis错误处理优化和代码重构
🚀 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
- ✅ 所有现有功能保持不变
🎉 升级建议
- 推荐升级: 本次优化提升了代码的健壮性和可维护性
- 无破坏性变更: 现有代码无需修改即可升级
- 测试验证: 建议在测试环境验证Redis连接和错误处理
🤝 贡献
感谢所有贡献者的支持和反馈!
📄 许可证
MIT License
ChangeLog v1.11.3
ChangeLog v1.11.2
What's Changed
New Contributors
- @YouZiXiL made their first contribution in #27
Full Changelog: v1.11.1...v1.11.2
ChangeLog v1.11.1
Full Changelog: v1.11.0...v1.11.1
- fix:$token 参数隐式可空的参数修改为显式可空类型,以避免出现弃用警告或错误。
ChangeLog v1.11.0
Full Changelog: v1.10.1...v1.11.0
ChangeLog v1.10.1
What's Changed
- 增加刷新令牌时extend数据的获取与传递 by @EagriSiol in #22
New Contributors
- @EagriSiol made their first contribution in #22
Full Changelog: v1.10.0...v1.10.1