【Postman】自动填充X-Authorization令牌token到请求头Headers中

请添加图片描述



1. 背景

  • 在大型互联网项目中,用户登录后都要返回一个 token 给客户端用于认证授权,存储在浏览器的本地存储中。以后每次发送请求,都必须在请求头中携带这一认证 token 才能正常获得服务器的响应。对于 Postman 测试来说,每测一个接口 URL 都要手动地在 Headers 中添加认证 token 是一件非常崩溃的事。
  • 本篇博文教你如何使用 Postman 的 Globals 全局变量、Environment 环境变量、Pre-request Script 自动获取最新 X-Authorization 的 token 并自动填充到所测试请求中 Headers 中。

2. 使用方法


1)设置全局环境变量

  • 全局变量 Global 是在整个 Workspace 中都能获取的变量。例如登录账号和密码。需要注意的是,全局变量可以被处于同一个 Workspace 中的任何人查看和编辑,因此对敏感涉密的信息要谨慎处理。点击右上角的小眼睛就能添加全局变量。

    image-20221208152858180

  • 设置了三个全局变量,分别是登录系统的账号和密码,以及认证授权 token 。注意,username 账户和 password 密码这两个全局变量在【INITIAL VALUE】和【CURRENT VALUE】两个空中都必须填写,后面在【Pre-request Script】脚本中才能获取到这两个全局变量。

    image-20221208192535509


2)设置测试环境

  • 主要是设置测试环境的 IP 地址和端口。

    image-20221208174356856

  • 这样设置后,以后只要切换到【Dev】开发环境,输入请求的 URL 时,就能用 {{host}} 来替换 localhost:9090 了。


3)编写Pre-request Script

  • Pre-request Script 是 JavaScript 脚本,在请求被发送前,会首先执行这个脚本。Pre-request Script 可以给单个请求设置,也可以给整个 Collection 设置。笔者这里选择了后者,点击 Collection 名称即可进入编辑 Pre-request Script 的页面。

    image-20221208155343921

  • 因此,我们编写这样一个脚本:在每次发送一个请求前,先发送一个 POST 请求去获取最新的 token ,获取 token 时使用 Global 全局变量中的账户和密码来登录系统,然后把这个 token 更新到 Global 全局变量中的 token 。

    image-20221208192849856

    const getToken = {
        url: "http://localhost:9090/api/auth/login",
        method: "POST",
        header: 'Content-Type:application/json',
        body: {
            mode: "raw",
            raw: JSON.stringify({
                "username": pm.globals.get('username'),
                "password": pm.globals.get('password')
            })
        }
    };
    pm.sendRequest(getToken, function(err, res) {
        pm.globals.set("token", "Bearer " + res.json().token);
    });
    

4)举例

  • 现在我来测试一个获取设备列表的 GET 请求 API 。

    image-20221208193305406

  • 点击【Send】后,成功获取数据。

    image-20221208193509565

  • 此时查看 Console 控制台发现确实发送了 2 个请求。

    image-20221208193638133

  • 第一个请求就是 Pre-request Script 中使用脚本发送的请求,用于获取认证 token 并存储到 Globals 全局变量 token 中。可以看到所测试的 GET 请求成功把 X-Authorization 的 token 存在请求头中。

    image-20221208193913797

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自牧君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值