新版本Postman解决token传参问题(记录)

这篇博客记录了如何使用Postman解决token传递问题。首先在登录接口成功后,通过Tests设置环境变量token,其值为响应中的token。接着在访问其他接口时,利用{{token}}语法直接读取该环境变量,实现Bearer Token类型的认证,从而顺利调用需要token的接口。
部署运行你感兴趣的模型镜像

问题描述:
有一个登陆接口获取token,其他接口再次访问都要带上token
解决方案:
1、在登陆接口访问后设置Postman的环境变量(Environment),例如设置环境变量名:token,值为登陆接口访问成功后,在responseBody中的token值,如何设置请看下面具体描述。
2、访问其他接口时token值直接读取变量即可。Postman里面获取变量的语法为:{{变量名}}

具体步骤:
1、登陆接口介绍

如图所示,login接口返回值JSON格式大体为:

{
    "status": 0,
    "message": "成功",
    "data": {
        "username": "cams_admin_dev",
        "token": "eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1MTYzNDIxMjAsInN1YiI6ImNhbXNfYWRtaW5fZGV2IiwiY3JlYXRlZCI6MTUxNjI1NTcyMDU0NywiZnVsbCI6ImNhbXNfYWRtaW5fZGV2IiwidWF1dGgiOiIvKio7QUxMIiwiYXV0aCI6InNldHRpbmdzLGNhbXNfYWRtaW4saW5kdXN0cnksYm9uZCxjYW1zSG9tZSxjb21wYW55LGFyZWEsZGV0YWlscyxjYW1zT3BlcmF0aW9uIn0.pI09X8KNoIK0fb6xC1xbrSZyg-EnUnlZ_9shmOQCRDtdIIEA5iyq3HmzgSx0ReaChEAZxkrrSRTtSXE8ZlbCTw"
    }
}


返回值中有token值, 这个值怎么在访问login接口后自动设置为Postman环境变量呢?
2、在访问login接口后自动设置为Postman环境变量
在Postman软件的Tests中写以下代码,设置环境变量

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
 
// 把responseBody转为json字符串
var data = JSON.parse(responseBody);
// 设置环境变量token,供后面的接口引用
pm.environment.set("token", data.data.token);

上面代码中的pm.environment.set("token", data.data.token)中的"token"属性名,以及data.data.token需根据自己后端登录成功后返回的数据格式进行相对应的设置。


如下图所示:

点击Send按钮发送请求后,就可以动态设置环境变量名为token,值为token值的变量。
设置成功后,点击那个眼睛图标,查看变量如图所示:


3、访问其他接口,环境变量token

如图红色标注的所示
1、另一个接口
2、TYPE中选择token的类型,我这里用到的是 Bearer Token
3、右边红色标注的部分设置token值,格式为:{{token}},获取前面login接口访问时动态设置的token,
那么这个接口就可以用了

点击Send会访问成功。

参考:https://blog.youkuaiyun.com/ruanhao1203/article/details/79095629

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

Postman 中验证 Token 以及正确使用 `Authorization` 头参数,通常涉及以下几个方面:Token 的获取、存储、传递以及验证机制。以下是对这些环节的详细说明: ### 1. Token 的获取与存储 在进行接口测试时,通常需要先通过登录接口获取 Token。获取到 Token 后,可以使用 Postman 提供的测试脚本功能将其存储为环境变量或集合变量,以便后续接口调用时使用。 例如,在登录接口的 **Tests** 脚本中,可以通过解析响应体获取 Token,并将其存储为环境变量: ```javascript const responseData = pm.response.json(); if (responseData.code === 1) { const { data: { token } } = responseData; pm.environment.set("auth_token", token); } ``` 也可以将其设置为集合变量,适用于多个接口共享该 Token 的场景: ```javascript pm.collectionVariables.set("admin_token", token); ``` ### 2. Authorization 头的设置方式 在后续请求中,需要将 Token 添加到请求头的 `Authorization` 字段中。Postman 提供了两种常见方式来设置 `Authorization` 头: - **手动设置请求头**:在请求的 **Headers** 选项卡中添加 `Authorization` 字段,并设置其值为 `Bearer <token>`,其中 `<token>` 可以引用变量: ``` Bearer {{auth_token}} ``` - **使用内置的 Authorization 选项**:在请求的 **Authorization** 选项卡中选择 **Bearer Token** 类型,并在 Token 输入框中填写 `{{auth_token}}`。这种方式会自动将 Token 添加到请求头中,格式为 `Authorization: Bearer <token>` [^1]。 ### 3. Token 的验证机制 在实际测试中,为了验证 Token 是否有效,可以在请求的 **Tests** 脚本中编写逻辑来检查响应状态码或响应内容。例如,如果 Token 失效,服务器可能会返回 `401 Unauthorized` 或特定的错误信息: ```javascript pm.test("Token should be valid", function () { pm.response.to.have.status(200); }); ``` 也可以通过解析响应体来验证 Token 是否被正确识别: ```javascript const responseJson = pm.response.json(); pm.test("Token validation check", function () { pm.expect(responseJson).to.have.property("status", "success"); }); ``` ### 4. Token 的刷新与重用 在长时间测试中,Token 可能会过期。为了确保测试的连续性,可以在每次请求前检查 Token 是否有效,若无效则重新获取 Token 并更新变量。例如,在请求的 **Pre-request Script** 中可以添加逻辑来检查 Token 是否存在或是否过期,并在必要时调用登录接口重新获取 [^2]。 ### 5. 安全性与最佳实践 - **避免硬编码 Token**:使用环境变量或集合变量来管理 Token,而不是直接写入请求头或脚本中。 - **使用 HTTPS**:确保所有请求通过 HTTPS 发送,以防止 Token 被中间人攻击截获。 - **定期清理 Token**:测试结束后,建议清除环境变量或集合变量中的 Token,避免敏感信息泄露。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值