如何在Postman中同时使用Basic Auth与Bearer Token测试预发布环境API?
解决预发布环境API的双重认证测试问题
核心方案:同时提供Nginx的Basic Auth凭证和API的Bearer Token
Postman完全支持同时配置这两种认证信息,有两种可行的实现方式:
方式一:手动构造包含双重认证的请求头
HTTP规范允许在单个Authorization头中包含多个认证方案(用逗号分隔),只要Nginx和后端API支持这种方式即可:
- 生成Basic Auth的base64编码值:把预发布环境的
用户名:密码字符串用Base64编码(可通过本地命令echo -n "user:pass" | base64生成)。 - 在Postman的「Headers」标签中添加
Authorization头,值格式为:Basic <你的base64编码值>, Bearer <预发布环境的API Token> - 发送请求,Nginx会先验证Basic部分,通过后转发给后端API,后端再验证Bearer Token部分。
方式二:利用浏览器认证后的Cookie绕过Nginx的Basic Auth
这种方式更稳妥,避免头字段冲突:
- 用浏览器打开预发布环境的网站,输入用户名密码完成认证。
- 在浏览器开发者工具(F12)的「Application」→「Cookies」中,复制对应预发布域名下的认证Cookie(名称依Nginx配置而定,通常为
auth类标识)。 - 在Postman的请求编辑页,切换到「Cookies」标签,添加该Cookie(域名、键、值与浏览器保持一致)。
- 切换到「Authorization」标签,选择「Bearer Token」,输入预发布环境的API Token,Postman会自动添加
Authorization: Bearer <token>头。 - 发送请求:Cookie会通过Nginx的认证,Bearer Token满足后端API的资源访问要求。
额外说明
如果方式一的多方案头不生效(部分服务器不支持),优先选择方式二——这是更通用的解决方法,浏览器认证后的Cookie已包含Nginx的认证凭证,无需重复传递Basic Auth信息。
内容的提问来源于stack exchange,提问作者Lou Nik
相关产品推荐
相关产品推荐

