You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman自动化REST API调用遇OAuth 2.0令牌问题,求自动化方案

嘿,我之前也碰到过一模一样的麻烦!Postman其实自带了OAuth 2.0令牌自动获取的功能,完全不用手动复制粘贴,下面一步步教你搞定:

方法一:用Postman内置的OAuth 2.0授权配置(最简单直接)

这是最省心的方式,Postman帮你把流程都封装好了:

  • 打开你的目标集合或者单个请求,切换到Authorization标签页
  • 在Type下拉菜单里选OAuth 2.0
  • 点击Configure New Token(如果之前配过就点Edit Token),进入令牌配置界面
  • 填好这些关键信息:
    • Token Name:起个好记的名字就行,比如「我的API令牌」
    • Grant Type:选你API对应的类型——如果是用户侧的请求一般用Authorization Code,服务端之间调用就选Client Credentials
    • Callback URL:Postman默认的https://oauth.pstmn.io/v1/callback大多场景都能用,但最好确认下你的OAuth服务商要求的回调地址
    • Auth URL:你的授权服务器的授权端点(比如https://your-auth-server.com/oauth/authorize)
    • Access Token URL:令牌获取的接口地址(比如https://your-auth-server.com/oauth/token)
    • Client ID & Client Secret:从你的API服务商那里拿到的凭证,别填错了!
    • Scope:填你的API需要的权限范围,比如read:users write:data
  • 填完后点Get New Access Token,Postman会自动走授权流程(Authorization Code类型的话可能会弹登录窗口,登一次就行)
  • 拿到令牌后点Use Token,这个令牌就会自动加到你的请求头里了
  • 关键操作:在集合的Authorization标签页也做同样配置,然后勾选Inherit auth from parent,这样整个集合的请求都会自动用这个令牌,不用挨个设置
方法二:用Pre-request Script自动刷新令牌(适合定时刷新/全自动化场景)

如果你的令牌过期快,或者想让集合运行完全不用干预,可以用脚本自动处理:

  • 先建一个专门拿令牌的请求(比如叫「获取OAuth令牌」),在它的Tests标签页写脚本,把令牌存到环境变量:
// 解析响应里的access_token
const token = pm.response.json().access_token;
// 把令牌存到环境变量,比如命名为"oauth_token"
pm.environment.set("oauth_token", token);

// 顺便把过期时间也存起来,方便后续判断
const expiresInMs = pm.response.json().expires_in * 1000;
pm.environment.set("oauth_token_expires_at", new Date().getTime() + expiresInMs);
  • 然后打开你的目标集合,进入Collection Pre-request Script标签,添加以下代码:
const expiresAt = pm.environment.get("oauth_token_expires_at");
const now = new Date().getTime();

// 如果令牌不存在或者已经过期,就自动调用拿令牌的请求
if (!expiresAt || now > expiresAt) {
    pm.sendRequest({
        url: "{{base_url}}/oauth/token", // 替换成你的令牌接口地址
        method: "POST",
        header: {
            "Content-Type": "application/x-www-form-urlencoded"
        },
        body: {
            mode: "urlencoded",
            urlencoded: [
                { key: "grant_type", value: "client_credentials" }, // 替换成你的授权类型
                { key: "client_id", value: "{{client_id}}" },
                { key: "client_secret", value: "{{client_secret}}" },
                { key: "scope", value: "read write" } // 替换成你的权限范围
            ]
        }
    }, function (err, res) {
        if (err) {
            console.error("获取令牌失败:", err);
        } else {
            const tokenData = res.json();
            pm.environment.set("oauth_token", tokenData.access_token);
            pm.environment.set("oauth_token_expires_at", now + tokenData.expires_in * 1000);
        }
    });
}
  • 最后,集合里的每个请求都切换到Authorization标签,选Bearer Token,Token字段填{{oauth_token}},这样每次请求前都会自动检查令牌状态,过期了就自动刷新
几个小提醒
  • 如果用的是Authorization Code类型,第一次拿令牌需要手动登一次,但之后Postman会存刷新令牌,自动帮你续期
  • Client Secret这种敏感信息,最好用Postman的Secret类型环境变量存储,避免泄露
  • 运行集合的时候一定要选对对应的环境,不然变量会取不到哦

内容的提问来源于stack exchange,提问作者jyothy krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:23:18