postman中如何用scripts提取token
时间: 2025-06-25 12:15:41 浏览: 17
### 如何在 Postman 中通过 Scripts 提取并存储 Token
在 Postman 中,可以通过 `Pre-request Script` 和 `Tests` 脚本来处理请求前后的逻辑操作。对于提取并存储 token 的场景,通常会在登录接口返回的数据中解析出 token,并将其保存到环境变量或全局变量中以便后续使用。
以下是具体实现方式:
#### 使用 Tests 脚本提取并存储 Token
当发送一个 POST 请求用于登录时,可以在 **Tests** 部分编写脚本以提取响应中的 token 并存储它。假设登录接口的响应是一个 JSON 对象,其中包含名为 `token` 的字段,则可以按照如下方式进行操作[^1]:
```javascript
// 假设登录接口返回的是JSON格式数据
let jsonData = pm.response.json();
// 提取token
pm.environment.set("token", jsonData.token); // 存储到环境变量
// 或者 pm.globals.set("token", jsonData.token); // 存储到全局变量
```
此段代码的作用是从服务器返回的 JSON 数据中读取 `token` 字段,并将其存入 Postman 的环境变量或者全局变量中。这样,在其他请求中就可以方便地调用该 token 来完成身份验证等功能。
#### 设置 Authorization Header 使用已存储的 Token
一旦成功获取并储存了 token 后,就需要更新接下来发出的所有受保护资源访问请求的 headers。这一步骤同样能够借助于 Pre-request Script 自动化执行:
```javascript
// 如果已经存在有效的token则无需再次请求新的token
if (!pm.variables.get("token")) {
const loginRequest = {
url: 'http://localhost:8000/api/v1/login',
method: 'POST',
header: 'Content-Type: application/json',
body: {
mode: 'raw',
raw: JSON.stringify({
username: 'test',
password: '123456'
})
}
};
pm.sendRequest(loginRequest, function (err, res) {
let jsonResponse = res.json();
pm.environment.set("token", jsonResponse['token']);
});
}
// 添加Authorization header
pm.request.headers.add({key:'Authorization',value:`Token ${pm.variables.get("token")}`});
```
上述代码片段展示了如何先检查是否有可用的 token;如果没有的话就主动发起一个新的登录请求来获得新 token 。之后再把得到的新 token 加入至当前请求的 Headers 当中去[^1]。
#### 示例:完整的 Postman 登录流程配置
为了更清晰展示整个过程,这里给出一个基于前面提到的方法构建起来的例子:
1. 创建一个新的 Collection;
2. 新建一条 Request 名称为 Login;
3. 在 Body 下拉菜单里选择 Raw 及其右侧 Content Type 设定为 Application/Json;
4. 输入相应的用户名密码信息作为 Payload;
5. 到 Test Tab 编写如下的 JavaScript 语句:
```javascript
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("auth_token", jsonData.access_token);
```
最后记得切换回 Main View 查看 Environment Variables 是否正确设置了 auth_token 这一项即可[^3]。
### 注意事项
- 确保 API 返回的结果结构与预期一致,特别是关于 token 所处位置的信息。
- 处理可能发生的错误情况,比如网络异常或是认证失败等问题。
阅读全文
相关推荐


















