如何快速在 Postman 中检查并解码 JWT(正确方式)

发布: (2025年12月13日 GMT+8 04:49)
6 min read
原文: Dev.to

Source: Dev.to

快速检查和解码 Postman 中 JWT(正确方式)的封面图片

介绍

如果你是一名使用现代 API 的开发者,JWT(JSON Web Token)已经是你的日常。你一定经历过这样的情形:一次 API 调用失败,你只能抓耳挠腮,猜测是 token 本身、过期时间还是声明(claims)出了问题。

常见的工作流是使用 Postman(或类似的工具如 Insomnia)来测试 API,但当需要解码刚收到的 JWT 时,Postman 的原生功能往往让你不得不打开另一个浏览器标签页去调试。

本文将介绍在 Postman 中检查 token 的简便原生方法,并展示一种工具,帮助你在不切换工具的情况下完成深度、安全的解码与验证。

方法一:快速且粗糙的 Postman 检查(局限性)

在控制台查看 Token

如果 JWT 出现在响应体或响应头中,Postman Console 是快速预览的最佳选择:

  1. 打开 Postman Console(视图 → 显示 Postman Console 或 Ctrl/Cmd + Alt + C)。
  2. 发送请求。
  3. 在 Console 中点击请求/响应,查看原始头部和正文。
  4. 复制 token(由三个用点分隔的 Base64 块组成的长字符串)。

注意点: 你仍然得到的是 Base64 编码的字符串。虽然可以手动对中间部分(payload)进行 Base64 解码,但无法轻松验证签名、以人类可读的方式检查过期时间,或立即验证 token 的结构。

使用前置请求/测试脚本

对于更高级的用户,可以编写 Postman 脚本手动解码 payload 部分,但这需要写代码并引入库。

// Example of a Postman Test Script to inspect a received JWT
pm.test("Check JWT Expiration", function () {
    const token = pm.response.json().access_token; // Adjust path as needed

    // Split the token into its parts (Header, Payload, Signature)
    const [header, payload, signature] = token.split('.');

    // Decode the payload part (Base64URL safe decoding)
    const decodedPayload = Buffer.from(payload, 'base64').toString('utf8');
    const claims = JSON.parse(decodedPayload);

    // Log the claims to the Console for inspection
    console.log("JWT Payload:", claims);

    // Example: Check if the token is already expired
    const isExpired = claims.exp < Date.now() / 1000;
    pm.expect(isExpired).to.be.false; 
});

这能工作,但它是你每次请求都必须编写的模板代码,而且仍然不处理签名验证。

方法二:正确的做法 – 使用专用 JWT 解码工具

在主动调试时,你需要速度、安全性和验证。最高效的工作流是把 token 从 Postman 复制出来,粘贴到专门面向开发者的工具中。

一个高质量的工具应当即时完成以下三件事:

  • 即时解码: 将 header 与 payload 转换为人类可读的 JSON。
  • 签名验证: 使用提供的 secret(如果适用)验证签名。
  • 错误标记: 高亮常见问题,如 token 已过期或签名无效。

为什么专用工具优于 Postman 调试

  • 100 % 客户端解码: 最好的工具在浏览器中完成全部解码,确保你的 secret 和 token 永不离开本机。这正是 DevCenterTools JWT Decoder 的实现方式。
  • 内置验证: 自动检查 exp(过期时间)、iat(签发时间)等注册声明,若无效或已过期会以红色提示。
  • 算法支持: 正确处理 HS256RS256 等不同算法,并指引你提供所需的 secret 或公钥。
  • 速度快: 复制 token、粘贴即可立即看到结果,无需编写(或维护)自定义 Postman 脚本。

你的调试工作流升级

  1. 在 Postman 中发送请求并获取 JWT。
  2. 复制完整的 JWT 字符串。
  3. 将其粘贴到 DevCenterTools JWT Decoder
  4. 立即看到解码后的 header 与 payload,并可提供 secret 进行签名验证。

这一步骤可以立刻帮助你定位问题:是 payload/claims 本身有误,还是 API 的 token 处理出了问题?

结论

虽然 Postman 是 API 测试的基础工具,但将 JWT 解码与验证等复杂任务交给专门的工具,能够显著加快调试周期。如果你经常在 Postman 与浏览器标签页之间切换进行解码,请务必选用既快速又安全(客户端完成!)且能自动验证 token 的工具。

Back to Blog

相关文章

阅读更多 »

实验性 Hono auth npm 包

我正在构建的东西:我正在创建一个 auth package,开发者可以将其直接放入他们的应用中,而无需编写常规的登录、注册、JWT、电子邮件验证等样板代码。