如何将TSOA登录/注册响应体的Token设为全局请求头(Swagger测试)
在Swagger中自动复用登录Token的可行方案
当然可行,给你几种实用的实现方式:
一、通过OpenAPI规范配置(推荐)
这是最靠谱的做法,只要在你的OpenAPI 3.x格式的API文档里加一段配置,Swagger UI就能自动帮你管理Token:
- 首先在文档的
components节点下定义Bearer Token认证规则:
components: securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT # 可选,用来标注Token是JWT类型
- 接着在文档全局添加
security配置,让所有接口默认启用这个认证:
security: - BearerAuth: []
- 最后别忘了在登录/注册接口的响应里明确Token的返回结构,比如:
paths: /auth/login: post: responses: '200': description: 登录成功 content: application/json: schema: type: object properties: token: type: string description: 登录后获得的JWT Token
配置完重新生成Swagger UI,顶部会出现Authorize按钮,点击后输入Token(可以直接输Token,有些版本会自动补全Bearer 前缀),保存后所有接口请求都会自动在Header里带上Authorization: Bearer {你的Token}。
二、无需修改API文档的临时方案
如果暂时动不了API文档,用浏览器的本地存储配合Swagger UI也能搞定:
- 先调用登录接口,从响应里复制Token。
- 按F12打开浏览器开发者工具,切换到Console标签,执行代码把Token存到本地存储:
localStorage.setItem('swaggerToken', '这里替换成你的Token');
- 然后在Swagger UI里每个需要Token的请求的Header中,把
Authorization的值设成:
Bearer {{localStorage.getItem('swaggerToken')}}
之后只要更新localStorage里的Token,所有用了这个表达式的请求都会自动用上新Token。
三、浏览器插件辅助
嫌手动设置麻烦的话,用浏览器插件就能一键自动加Header:
- 比如Chrome的ModHeader,新建规则:当请求URL匹配你的API域名时,自动添加
Authorization: Bearer {你的Token}。 - 每次登录拿到新Token后,在插件里更新一次值就行,所有Swagger里的请求都会自动带上Token。
内容的提问来源于stack exchange,提问作者Sweet
相关产品推荐
相关产品推荐

