外观
令牌转换拦截器 🔄
功能介绍 💡
WARNING
令牌转换拦截器就像一个安全中转站,通过临时令牌(code)替代真实令牌(token)来提升系统安全性。主要用于文件下载等需要在URL中传递身份认证信息的场景。
核心功能 ✨
- 🔑 临时code转换为token
- 📝 临时code生成接口
- 🔄 登录时自动生成临时code
应用场景示例 🌟
文件下载安全增强
传统方式的问题:
- ❌ URL中直接携带token
- ❌ token可能被非法获取
- ❌ token泄露风险高
转换方式的优势:
- ✅ 使用临时code替代token
- ✅ code具有时效性
- ✅ 有效防止token泄露
详细配置说明 ⚙️
核心参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
enabled | boolean | 否 | false | 是否启用拦截器 |
items | array | 是 | - | 转换规则配置列表 |
转换规则配置详解 (items)
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
field-name | string | 是 | - | 临时code的参数名 |
transform-urls | array | 是 | - | 需要进行转换的URL列表 |
generate-urls | array | 否 | - | 生成临时code的URL列表 |
expire | string | 否 | PT10M | 临时code有效期 |
配置示例 📋
基础配置
yaml
wueasy:
gateway:
filter:
authorization-transform:
enabled: true # 启用令牌转换
items:
- field-name: uuid # 参数名称
transform-urls: # 需要转换的地址
- /api/download/**
generate-urls: # 生成临时code的地址
- /api/code/generate
expire: PT10M # 10分钟有效期
多规则配置
yaml
wueasy:
gateway:
filter:
authorization-transform:
enabled: true
items:
- field-name: uuid # 下载文件场景
transform-urls:
- /api/download/**
generate-urls:
- /api/code/generate
expire: PT30M # 30分钟有效期
- field-name: temp_token # 导出数据场景
transform-urls:
- /api/export/**
generate-urls:
- /api/temp/token
expire: PT5M # 5分钟有效期
使用流程指南 📝
- 生成临时Code
http
GET /api/code/generate HTTP/1.1
Host: your-domain.com
Authorization: Bearer your-real-token
- 使用临时Code
http
GET /api/download/file?uuid=temporary-code HTTP/1.1
Host: your-domain.com
最佳实践 💡
安全建议
- 设置合适的过期时间
- 使用HTTPS传输
- 避免重复使用临时code
性能优化
- 合理缓存临时code
- 及时清理过期code
- 控制生成频率
用户体验
- 提前生成临时code
- 处理code过期情况
- 添加友好的错误提示
常见问题 ❓
临时code失效
- 检查是否超过有效期
- 确认code是否已使用
- 验证code格式是否正确
转换失败
- 检查URL配置是否正确
- 验证参数名称是否匹配
- 确认Redis服务是否正常
安全提示 ⚠️
CAUTION
- 临时code仅一次有效
- 及时清理过期code
- 监控异常访问行为
- 避免code重复使用