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

如何在Requestly API Client中复用API响应令牌到后续请求

解决Requestly API Client自动刷新并应用Access Token的问题

核心思路

利用Requestly的环境变量、响应提取规则和前置脚本,实现登录token自动提取、存储,并自动注入到后续请求的头中,甚至在token过期时自动触发登录刷新。


步骤1:创建环境变量存储Token相关信息

  1. 打开Requestly API Client的「环境」面板
  2. 创建3个变量:
    • access_token:初始值留空,用于存储最新的令牌
    • token_expiry:初始值留空,存储令牌过期时间戳
    • base_url:填入你的API域名(比如https://your-api-server.com)

步骤2:配置登录请求的响应提取规则

针对你的POST /api/auth/login请求:

  1. 编辑该请求,切换到「响应处理」标签
  2. 添加「提取变量」操作,配置:
    • 提取路径:输入$.access_token(JSONPath语法,匹配响应中的access_token字段)
    • 目标变量:选择环境变量中的access_token
  3. 再添加一个「提取变量」操作,配置:
    • 提取路径:输入$.expires_in
    • 目标变量:临时变量(比如temp_expires)
  4. 接着添加「运行脚本」操作,写入脚本计算过期时间并存储:
    const expiresIn = pm.variables.get('temp_expires');
    pm.environment.set('token_expiry', Date.now() + expiresIn * 1000);
    
  5. 保存所有规则,以后每次执行登录请求,token和过期时间会自动存入环境变量。

步骤3:给需要Token的请求自动添加Authorization头

以GET /api/user/profile为例:

  1. 编辑该请求,切换到「请求预处理」标签
  2. 添加「添加请求头」操作:
    • 头名称:Authorization
    • 头值:Bearer {{access_token}}(双花括号引用环境变量)
  3. 保存规则,后续执行该请求时,会自动从环境变量读取token填充到头中。

如果有多个需要token的请求,可以批量选中后统一添加该规则。


步骤4:实现Token过期自动触发登录(可选)

如果想彻底自动化,让请求在token过期时自动先登录刷新:

  1. 打开需要token的请求的「请求预处理」标签
  2. 添加「运行脚本」操作,写入以下脚本:
    const accessToken = pm.environment.get('access_token');
    const tokenExpiry = pm.environment.get('token_expiry');
    const baseUrl = pm.environment.get('base_url');
    
    // 检查token是否存在或已过期
    if (!accessToken || Date.now() > tokenExpiry) {
        // 发起登录请求
        pm.sendRequest({
            url: `${baseUrl}/api/auth/login`,
            method: 'POST',
            header: { 'Content-Type': 'application/json' },
            body: {
                mode: 'raw',
                raw: JSON.stringify({
                    username: 'user@example.com',
                    password: 'password123'
                })
            }
        }, function (err, res) {
            if (!err) {
                const respData = res.json();
                // 更新环境变量
                pm.environment.set('access_token', respData.access_token);
                pm.environment.set('token_expiry', Date.now() + respData.expires_in * 1000);
                // 重新发起当前请求
                pm.sendRequest(pm.request, function (reqErr, reqRes) {
                    pm.response.set(reqRes);
                });
            } else {
                console.error('自动登录失败:', err);
                pm.response.set({ status: '500', body: '自动登录失败' });
            }
        });
        // 暂停当前请求,等待登录完成
        return false;
    }
    
  3. 保存脚本,以后执行该请求时,会自动检查token状态,过期则先登录刷新再执行请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:43:12