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

如何在Postman请求内完成第三方服务授权流程?

在Postman里搞定第三方服务授权流程的方法

问题背景

我想在Postman里实现应用的第三方服务授权流程,不用每次把链接复制到浏览器里操作。这个授权流程是这样的:

  • 客户端点按钮触发请求
  • 应用检查有没有token,没有就返回第三方的授权链接
  • 客户端跳转到授权链接,输入账号密码提交表单
  • 第三方服务带着authorization code作为查询参数,重定向回应用
  • 客户端再点另一个按钮,用这个code换token

我之前在Test标签写了段脚本,但完全没效果,代码是这样的:

var jsonData = JSON.parse(responseBody);
console.log(jsonData.data)
if (jsonData.data) {
    pm.sendRequest(jsonData.data, function (err, response) {
        console.log(response);
        return response;
    });
}

为啥之前的脚本没用?

你这段脚本只是用pm.sendRequest请求了授权链接,但第三方的授权页面是HTML表单页,不是普通API接口。pm.sendRequest只能拿到页面的HTML代码,没法模拟你输入账号密码、点提交的操作,也处理不了页面跳转逻辑,所以跑了等于白跑。

在Postman里完成授权的具体步骤

其实可以在Postman里搞定,分几步来,结合环境变量和脚本就行:

  1. 存授权链接
    先发第一步的请求(就是客户端点按钮触发的那个),在Test脚本里把返回的授权链接存到环境变量里:

    var jsonData = pm.response.json();
    if (jsonData.data) {
        pm.environment.set("auth_url", jsonData.data);
        console.log("授权链接已经存到环境变量里了:", jsonData.data);
    }
    
  2. 在Postman内置浏览器里填授权表单
    从环境变量里把auth_url复制出来,在Postman开个新标签页,把链接粘到地址栏回车。这时候会加载第三方的授权页面,你直接在Postman的内置浏览器里输入凭证、提交表单就行,不用切到外部浏览器。

  3. 抓authorization code
    提交表单后,第三方会重定向回应用的回调地址,这时候Postman地址栏的URL里会有个code参数,就是我们要的authorization code。把这个code存到环境变量里——嫌手动输麻烦的话,也可以在回调请求的Test脚本里自动提取:

    var code = pm.request.url.query.get("code");
    if (code) {
        pm.environment.set("auth_code", code);
        console.log("授权码已经提取并存储:", code);
    }
    
  4. 用code换token
    新建一个请求,把请求里需要填code的地方换成{{auth_code}}(引用环境变量),发请求就能拿到token了。

进阶小技巧:减少手动操作

要是想再懒一点,可以试试Postman的拦截器:

  • 开启拦截器,确保授权过程中的Cookie能正常传递,避免登录态丢失。
  • 在请求授权链接的Pre-request Script里加一句pm.request.followRedirects = true;,让Postman自动跟随重定向。
    不过要注意,第三方的人机验证、验证码这些还是得手动弄,Postman没法完全模拟人的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:40:54