如何在 Postman 中添加 Bearer Token 身份验证

2025年1月24日 | 阅读 13 分钟

引言

在 API 开发中,Postman 是一款有效的协作工具。它简化了 API 的开发、分发、测试和文档编制过程,对于从事涉及 API 的项目的团队和开发人员来说至关重要。Postman 功能丰富且用户界面直观,让用户能够轻松创建 API 查询、检查响应并自动化测试过程。

  • 构建请求: 使用各种方法(POST、PUT、DELETE 等)构建 HTTP 请求,并包含标头、正文内容和参数。
  • 响应处理: 查看 API 请求的结构化响应,包括状态代码、标头和正文信息。
  • 环境管理: 建立和管理用于存储变量、令牌和其他动态数据的环境。
  • 集合: 将类似的 API 查询收集到集合中,以改进结构并方便共享使用。
  • 自动化: 使用测试、预请求脚本和 Postman 的命令行工具 Newman 来自动化测试和流程。

API 测试的重要性

  • 功能验证: 确保 API 端点按预期工作并提供准确的数据。
  • 早期错误检测: 通过在开发周期的早期识别问题,可以降低修复成本和工作量。
  • 性能评估: 通过在各种场景下评估 API 端点的性能,确定它们能否承受预期的负载。
  • 安全保障: 验证安全措施的有效性,以保护私人信息并阻止未经授权的访问。
  • 互操作性测试: 验证 API 是否与各种程序和系统兼容,以提供无缝集成。

理解身份验证

身份验证是验证个人或系统身份的过程。在 API 的上下文中,身份验证可确保只有授权用户或应用程序才能访问特定资源或执行特定任务。它是 API 安全的关键部分,可防止对重要信息和功能的未经授权访问。

通常,身份验证会通过呈现凭据(如用户名、密码、令牌或证书)来验证请求者的身份。API 在成功验证后会授予对指定资源的访问权限。

不同的身份验证方法

  • 基本身份验证: 这是一种简单的技术,客户端在请求标头中包含 base64 编码的用户名和密码。它易于设置,但除非使用 HTTPS,否则不安全。
  • API 密钥身份验证: 这包括在每个请求中将唯一的密钥作为查询参数或标头发送。API 密钥易于使用,但需要安全管理。
  • Bearer Token 身份验证: 这种方法使用服务器生成的令牌来对 API 请求进行身份验证。`Authorization` 标头包含“Bearer <token>”令牌。由于其易用性和安全性,这种方法很受欢迎。

Bearer Token 身份验证

一种称为“Bearer Token 身份验证”的令牌身份验证形式,它使用令牌作为资源访问的凭据。“Bearer”一词表示令牌的持有者拥有访问权限;也就是说,拥有令牌的任何人都可以使用它来访问相关资源。

身份验证服务器通常会提供一个 Bearer Token,这是一个字符字符串,通常是长而随机生成的序列。每当应用程序或用户尝试访问受保护的资源时,都需要一个包含令牌的 HTTP 请求。然后,在授予访问权限之前,服务器会验证令牌。

Bearer Token 的工作原理

  • 客户端请求令牌: 客户端(可以是 Web 或移动应用程序)向身份验证服务器提供有效的凭据(例如密码和用户名)或通过 OAuth 2.0 收到的授权码,以请求 Bearer Token。
  • 令牌颁发: 身份验证服务器在颁发令牌之前会检查授权码或凭据。如果有效,它会创建一个 Bearer Token 并将其返回给客户端。
  • 客户端使用令牌: 要访问受保护的资源,客户端会在 HTTP Authorization 标头中添加 Bearer Token。最常见的标头格式是 {Authorization: Bearer <token>}。
  • 服务器验证令牌: 收到请求后,服务器会从 Authorization 标头中检索并验证 Bearer Token。如果令牌有效,服务器会处理请求并返回适当的响应。

用例

Bearer Tokens 被广泛用于各种场景,例如:

  • 微服务和 API: 许多现代系统都采用微服务架构构建,服务之间通过 API 进行通信。Bearer Tokens 是保护这些 API 调用并确保只有授权的客户端可以访问特定端点的最佳选择。
  • 单页应用程序 (SPA): 为了跟踪用户会话,SPA 经常使用 Bearer Tokens。用户登录后,SPA 会收到一个 Bearer Token,它会在任何后续的 API 查询中使用该 Token 来获取或编辑数据。
  • 移动应用程序: 通过使用 Bearer Tokens 对 API 查询进行身份验证,移动应用程序允许用户安全地访问其数据,而无需不断输入凭据。
  • 第三方集成: Bearer Tokens 安全地授权与第三方服务(如社交媒体或支付网关)交互的应用程序,使应用程序能够代表用户执行操作。

设置 Postman

安装 Postman

在使用 Postman 之前,您必须先将其下载并安装在计算机上。请按照以下说明开始使用 Postman:

  • 访问 Postman 网站: 启动 Web 浏览器并导航到 [https://www.postman.com/downloads/](https://www.postman.com/downloads/) 来访问官方 Postman 网站。
  • 选择您的平台: Linux、macOS 和 Windows 都可以运行 Postman。根据您的操作系统选择下载链接。
  • 在此处获取安装程序: 单击下载按钮下载 Postman 安装程序。下载应会自动开始。这可能需要几秒钟,具体取决于您的连接速度。

安装步骤

下载完成后,请按照以下步骤安装 Postman:

  1. 运行安装程序
    • Windows: Windows 用户可以通过双击下载的 `.exe` 文件开始安装。
    • macOS: 要打开 Postman 应用程序,请双击下载的 `.zip` 文件,然后将其拖到“应用程序”文件夹中。
    • Linux: 提取下载的 `.tar.gz` 文件后运行 `Postman` 程序,并在终端中打开提取的文件夹。
  2. 遵循安装提示: 安装程序会引导您完成整个过程。您可能需要在 Windows 上提供管理员权限。
  3. 打开 Postman: 安装完成后打开 Postman。首次启动时,Postman 可能会检查更新并根据需要进行安装。
  4. 初始配置: 首次启动 Postman 时,您可能会看到一个初始配置屏幕。您可以登录或跳过此步骤,以便立即开始使用 Postman。

创建 Postman 帐户

虽然您可以在没有帐户的情况下使用 Postman,但拥有帐户有许多好处,包括能够在设备之间同步数据和访问更多功能。

注册流程

  1. 打开 Postman: 启动 Postman 软件。
  2. 转到注册页面: 如果这是您首次访问 Postman,将出现一个欢迎页面,其中包含注册或登录的选项。单击“Sign Up”或“Create Account”按钮。
  3. 输入您的详细信息
    • 电子邮件:输入您的电子邮件地址。
    • 密码:为您的帐户创建强密码。
    • 或者,您可以使用您的 Google 帐户进行一键注册。
  4. 确认您的电子邮件: 输入信息后,您可能需要确认您的电子邮件地址。Postman 将向您提供的地址发送一封验证电子邮件。打开电子邮件后,单击验证链接。
  5. 完成注册: 验证您的电子邮件地址后,您就可以使用该地址和密码登录到您的新 Postman 帐户。

拥有帐户的好处

创建 Postman 帐户有许多好处:

  • 数据同步: Postman 会在您所有设备上自动跟踪您的集合、环境和其他数据。有了这个,您的工作将始终可供您访问。
  • 团队协作: Postman 帐户可让您更有效地与团队合作。您可以查看团队成员的更改、共享集合和监控 API。
  • 增强安全性: 拥有帐户,您可以确信您的数据是安全且已备份的。为了进一步保护,您可以选择启用双因素身份验证 (2FA)。

安装并设置好帐户的 Postman 后,您可以按照以下步骤将 Bearer Token 身份验证添加到您的 API 请求中。

获取 Bearer Token

生成 Bearer Token

1. OAuth 2.0

OAuth 2.0 是一种流行的授权机制,允许应用程序获得对 HTTP 服务上用户帐户的受限访问。它通过授予托管用户帐户的服务用户身份验证的权限,并将用户帐户的访问权限授予其他应用程序来工作。

  • 客户端凭据授予: 客户端凭据授予是应用程序级别身份验证的一种方法。客户端(应用程序)使用其登录凭据请求访问令牌。
  • 授权码授予: 这包括用户登录并授权应用程序,然后应用程序会收到一个授权码以换取访问令牌。
  • 隐式授予: 这与单页应用程序配合使用效果很好,在这种情况下,不需要授权码交换即可立即交付访问令牌。

2. JSON Web Tokens (JWT)

JWT 是一种小巧、安全的、基于 URL 的表示形式,用于在两个方之间传递声明。JSON Web 加密 (JWE) 结构的纯文本或 JSON Web 签名 (JWS) 结构的有效负载都使用包含声明的编码 JSON 对象,这就是 JWT。

  • JWT 的结构: JWT 通常由三个部分组成,用点 (.) 分隔。这些部分是:
  • 标头: 此部分包含元数据,包括签名机制和令牌类型 (JWT)。
  • 有效负载: 有效负载是包含声明的部分。这通常是包含最重要数据(如用户凭据和令牌过期时间)的部分。

生成令牌的示例 API

让我们通过一个使用示例 API 生成 Bearer Token 的例子,看看如何获取 Bearer Token。假设我们正在使用 OAuth 2.0 客户端凭据授予。

示例 API 端点

  • URL:`https://api.example.com/oauth2/token`
  • 方法:`POST`
  • 标题
  • `Content-Type: application/x-www-form-urlencoded`
  • 正文参数
  • `grant_type`:在此流程中,此值将为 `client_credentials`。
  • `client_id`:在注册过程中发给客户端的客户端 ID。
  • `client_secret`:在注册过程中发给客户端的客户端密钥。

请求示例

响应示例

对端点和响应的解释

  • 端点 URL: 要获取访问令牌,请将客户端凭据发送到 `https://api.example.com/oauth2/token`。
  • 请求方法: 要创建新令牌,我们使用 `POST` 方法将数据提交到服务器。
  • 标头: 根据 `Content-Type: application/x-www-form-urlencoded` 标头,请求正文将是 URL 编码的。
  • 物理特征
  • 'grant_type': 指示正在使用的授予类型。在此实例中为 {client_credentials}。
  • 'client_id' 和 'client_secret': 这些是授权服务器用于验证客户端应用程序的凭据。
  • 响应字段
  • `access_token`: 将用于身份验证请求的实际 Bearer Token。
  • `token_type`: 指示返回的令牌类型。此处为 `Bearer`。
  • `expires_in`: 访问令牌的有效期(以秒为单位)。在此时间之后,令牌将过期,需要请求新令牌。
  • `scope`: 令牌授予的访问范围。这可以包括各种权限,如 `read` 和 `write`。

在 Postman 中添加 Bearer Token

1. 在 Postman 中创建新请求

  • 打开 Postman: 在桌面上打开 Postman 程序。
  • 创建新请求: 要开始新请求,请单击 Postman 窗口左上角的“New”按钮。

2. 设置请求

  • 选择 HTTP 方法: 从 URL 输入框旁边的下拉菜单中,选择正确的 HTTP 方法(GET、POST、PUT、DELETE 等)。
  • 输入 API 端点: 在 URL 输入字段中,键入您想要发送请求的 API 端点。确保端点是您正在评估的 API 的正确端点。

3. 添加 Bearer Token

  • 转到标记为“Authorization”的选项卡 在 URL 输入区域的底部,选择“Authorization”选项卡。
  • 从下拉列表中选择“Bearer Token”:在 Authorization 选项卡上,从下拉菜单中选择“Bearer Token”。
  • 输入令牌: 在指定的输入区域中,输入您的 Bearer Token。

4. 替代方法:使用标头

  • 单击“Authorization”选项卡旁边的“Headers”选项卡进入。
  • 添加 Authorization 标头: 在 Headers 选项卡中,创建一个键为“Authorization”的新标头。
  • 格式: 在“Authorization”标头的值中输入“Bearer <token>”,其中 {<token>} 是您的实际 Bearer Token。

发送请求

在 Postman 中通过包含令牌配置 Bearer Token 身份验证后,下一步是发送请求到 API 端点。

1. 执行 API 调用

  • 找到“Send”按钮: 在 Postman 界面中,找到大的“Send”按钮。它通常位于请求窗格的右侧。
  • 选择“Send”:单击此按钮后,Postman 将使用提供的参数(包括您为身份验证添加的 Bearer Token)尽快发起 API 调用。
  • 跟踪请求执行: Postman 将显示请求执行的进度。请求标头、参数和其他选项等详细信息均可见。

2. 分析响应

发送请求后,您需要检查 API 服务器的响应。

  • 理解响应正文: Postman 显示 API 服务器发送的响应正文。通常,这包含您 API 调用所请求的信息或数据。
  • 理解状态代码: 观察与响应一起出现的 HTTP 状态代码。状态代码提供有关 API 请求的成功、失败或特定要求的见解。
  • 200 OK:此代码表示请求成功。
  • 401 Unauthorized:此错误消息表示缺少或错误的 Bearer Token。
  • 403 Forbidden:这表示即使有有效令牌,也禁止访问该资源。

自动检索 Bearer Token

通过自动化 Bearer Token 的检索和使用,可以简化 Postman 中的 API 测试流程,提供有效和安全的身份验证。

预请求脚本

Postman 的预请求脚本允许您在发送请求之前运行 JavaScript 代码。此功能在根据外部数据或情况动态创建值(包括令牌)方面非常有用。

编写脚本以自动获取并设置 Bearer Token

您可以创建预请求脚本,该脚本会向身份验证端点请求 Bearer Token,获取它,然后将其保存以供后续请求使用,从而自动化检索 Bearer Token 的过程。

脚本说明

  • 使用身份验证端点 `https://your-authentication-service.com/token`,此脚本会发送 POST 请求。
  • 请求正文包含凭据({username} 和 {password})以及标头。
  • 如果响应成功,脚本将使用 `pm.environment.set` 从响应正文中检索 Bearer Token({access_token})并将其存储在环境变量中。

环境变量

设置环境变量

Postman 的环境变量是占位符,可以在请求之间保存数据,这使其非常适合安全地存储令牌并允许从不同脚本或请求访问它们。

使用变量存储令牌

使用预请求脚本,您可以获取 Bearer Token 并将其存储在环境变量中以便于访问。

通过使用环境变量集中安全地存储和管理您的 Bearer Token,可以降低暴露风险,并使在 Postman 中维护 API 测试和集合变得更加容易。使用预请求脚本和环境变量自动检索 Postman 中的 Bearer Token 可提高 API 开发和测试的工作流程效率和安全性。通过使用这些技术,开发人员可以更多地专注于测试功能,而不是手动处理身份验证令牌。

疑难解答常见问题

1. 无效令牌错误

在 Postman 中使用 Bearer Token 身份验证时,经常会出现无效令牌问题。

  • 令牌格式不正确: 验证令牌的格式是否正确。标题“Bearer”通常首先出现,然后是一个空格,然后是令牌本身(?Bearer <token>?)。
  • 令牌过期: 每个令牌都有一个过期日期。如果旧令牌过期,您需要从令牌提供者那里获取一个新令牌。
  • 令牌撤销: 服务器可能因多种原因(包括安全问题)而撤销令牌。检查令牌是否已被撤销,如果未撤销,则获取新令牌。
  • 令牌不匹配: 确保您使用的令牌与您尝试使用的 API 相匹配。如果您尝试使用为不同 API 准备的令牌,可能会出现令牌不匹配错误。

2. 令牌过期

  • 错误响应: 当令牌过期时,服务器通常会返回 401 Unauthorized 状态代码。响应也可能包含有关过期的详细信息。
  • 刷新令牌: 许多 API 允许用户在无需重新输入登录信息的情况下续订过期令牌。要获取新的访问令牌,此方法通常涉及执行第二个 API 请求,并在可用时使用刷新令牌。
  • 使用刷新令牌: 如果您的 API 配置允许使用刷新令牌,请利用它们来获取新的访问令牌,而无需用户经过完整的身份验证过程。
  • 令牌续订流程: 了解您的 API 如何处理令牌续订。这可能涉及使用刷新令牌向身份验证服务器提供的特定端点发送 POST 请求。

令牌处理

  • 自动令牌刷新: 使用令牌管理工具或预请求脚本,将自动令牌刷新技术集成到您的 Postman API 查询中。
  • 管理令牌过期: 为了防止 API 访问中断,请跟踪令牌过期日期,并在令牌过期之前主动刷新令牌。
  • 错误处理: 在 API 客户端中构建强大的错误处理功能,以优雅地处理与令牌相关的错误,并为用户提供清晰明确的故障排除说明。

Postman 中 Bearer Token 身份验证的最佳实践

安全注意事项

保护令牌安全

确保 Postman 中 Bearer Tokens 的安全性至关重要,以避免对您的 API 进行未经授权的访问。

  • 加密: 始终通过 HTTPS 发送令牌,以确保 Postman 与您的 API 服务器之间的通信安全。这可以防止不良行为者拦截令牌。
  • 环境变量: 使用 Postman 的环境变量功能安全地存储令牌,而不是将令牌硬编码到请求中。这通过将令牌排除在脚本和请求正文之外来降低暴露风险。
  • 令牌存储: 避免将令牌存储在本地存储系统中,这些系统可能会被您计算机上运行的脚本或其他程序访问。

避免令牌泄露

  • 使用环境变量和全局变量: 您可以使用 Postman 的环境变量或全局变量来集中管理令牌。避免在脚本或共享集合中可见的请求正文或标头中暴露令牌。
  • 令牌过期: 通过在您的 API 和 Postman 设置中实施令牌过期策略和程序,减少令牌被盗的影响。

令牌管理

Postman 中有效的令牌处理

  • 令牌刷新机制: 建立一个系统,如果令牌具有有限的生命周期,则在它们过期之前自动刷新令牌。Postman 的预请求脚本可以自动化此过程。
  • 集中令牌管理: 要集中处理令牌,请使用 Postman 集合来组织请求。这使得在多个查询中维护和更新更加容易。

结论

在 Postman 中使用 Bearer Token 身份验证是一种安全有效的 API 测试方法。通过遵循最佳实践,包括安全地存储和维护令牌,用户可以降低未经授权访问和令牌泄露的风险。为了保护敏感身份验证数据,需要在 HTTPS 上加密令牌通信,将数据存储在 Postman 环境变量中,并实施令牌过期控制。