Skip to content

令牌转换拦截器 🔄

功能介绍 💡

WARNING

令牌转换拦截器就像一个安全中转站,通过临时令牌(code)替代真实令牌(token)来提升系统安全性。主要用于文件下载等需要在URL中传递身份认证信息的场景。

核心功能 ✨

  • 🔑 临时code转换为token
  • 📝 临时code生成接口
  • 🔄 登录时自动生成临时code

应用场景示例 🌟

文件下载安全增强

传统方式的问题

  • ❌ URL中直接携带token
  • ❌ token可能被非法获取
  • ❌ token泄露风险高

转换方式的优势

  • ✅ 使用临时code替代token
  • ✅ code具有时效性
  • ✅ 有效防止token泄露

详细配置说明 ⚙️

核心参数说明

参数名类型必填默认值说明
enabledbooleanfalse是否启用拦截器
itemsarray-转换规则配置列表

转换规则配置详解 (items)

参数名类型必填默认值说明
field-namestring-临时code的参数名
transform-urlsarray-需要进行转换的URL列表
generate-urlsarray-生成临时code的URL列表
expirestringPT10M临时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分钟有效期

使用流程指南 📝

  1. 生成临时Code
http
GET /api/code/generate HTTP/1.1
Host: your-domain.com
Authorization: Bearer your-real-token
  1. 使用临时Code
http
GET /api/download/file?uuid=temporary-code HTTP/1.1
Host: your-domain.com

最佳实践 💡

  1. 安全建议

    • 设置合适的过期时间
    • 使用HTTPS传输
    • 避免重复使用临时code
  2. 性能优化

    • 合理缓存临时code
    • 及时清理过期code
    • 控制生成频率
  3. 用户体验

    • 提前生成临时code
    • 处理code过期情况
    • 添加友好的错误提示

常见问题 ❓

  1. 临时code失效

    • 检查是否超过有效期
    • 确认code是否已使用
    • 验证code格式是否正确
  2. 转换失败

    • 检查URL配置是否正确
    • 验证参数名称是否匹配
    • 确认Redis服务是否正常

安全提示 ⚠️

CAUTION

  1. 临时code仅一次有效
  2. 及时清理过期code
  3. 监控异常访问行为
  4. 避免code重复使用

相关文档 📚