如何在 Postman 中为 GCP 存储自动生成新的 Bearer Token

How to auto generate new Bearer Token in Postman for GCP Storage

我正在尝试使用 Postman.

通过云存储 Rest API (https://storage.googleapis.com/upload/storage/v1/b) 将文件从本地上传到 GCP 存储桶

我在 GCP Shell 上使用 Bearer Token 进行授权并使用 运行 $(gcloud auth print-access-token) 命令每次生成该令牌。

我需要知道,如何在发送请求时从 Postman 自动生成该令牌?

有什么方法可以在 Postman 中每次作为预请求脚本执行 $(gcloud auth print-access-token) 吗?

谢谢

我对 postman 不是很好,但我认为你可以 运行 预请求获取令牌并在后续请求中重用它。

如果是这样,您可以从 gcloud auth print-access-token 命令中获得灵感,方法是添加 --log-http 参数以可视化 CLI 执行的请求并在 Postman 中重现它们。


编辑 1

如果执行请求,可以看到对这个URLhttps://oauth2.googleapis.com/token

执行了一个post

要重现调用,您可以尝试使用 curl

curl -X POST -d "grant_type=refresh_token&client_id=32555940559.apps.googleusercontent.com&client_secret=ZmssLNjJy2998hD4CTg2ejr2&refresh_token=<REFRESH_TOKEN>&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth" https://oauth2.googleapis.com/token

在这次通话中,您需要 REFRESH_TOKEN,您可以在这里

cat ~/.config/gcloud/legacy_credentials/<YOUR EMAIL>/adc.json

Google Cloud Storage 与其他 Google API 一样需要身份验证,其中一种身份验证方式是提供 bearer token .这些不记名令牌寿命短,需要重新生成。

因此有 3 种方法可以生成不记名令牌,因此您可以使用 Postman 与 Google 存储 API 或其他 Google API 交互:

  1. 使用 oauth2l CLI(手动重新生成新的承载令牌并使用新令牌更新授权 header)

    • 此 oauth2l CLI 实用程序允许您生成不记名令牌,可以将其粘贴到邮递员中的授权 header 中。您可以使用
  2. 使用 OAuth 2 和用户凭据配置 Postman(可以通过 Postman UI 管理令牌,单击即可清除过期令牌一个按钮)

    • Postman 可以配置为触发 OAuth 2 流程并在所有请求中使用生成的不记名令牌。但请确保所有用户在 Google Cloud Platform 项目中具有正确的权限。

    • 您需要在 Google Cloud Console 中创建 OAuth 2 凭据:

      1. 转到 APIS 和服务
      2. 然后转到“凭据”选项卡
      3. 点击创建凭据
      4. Select OAuth 客户端 ID
      5. 填写字段以创建 OAuth 客户端 ID(还添加授权重定向 URI,但这不需要解析到任何地方)。
    • Client ID 和 Client Secret 需要保存在您的机器中。

    • 使用 Postman 的环境变量功能根据 environment/project 使用不同的凭据。在 Postman 中,使用右上角的齿轮图标为您的凭据创建一个新环境。

    • 相应地配置变量:AUTH_CALLBACK_URL , AUTH_URL, AUTH_CLIENT_ID, AUTH_CLIENT_SECRET, AUTH_ACCESS_TOKEN_URL

    • 此变量应与 OAuth 2 客户端 ID 创建菜单中定义的变量相同,并且应为 following 之一:AUTH_SCOPE

    • 一旦定义,这些变量就可以在 Postman 的授权选项卡中使用。这可以在 collection 级别、文件夹级别甚至单个请求级别进行配置。

    • 要重新生成令牌,您可以转到授权选项卡并单击获取新访问令牌

  3. 配置 Postman 使用 pre-request 脚本和服务凭证(pre-request 脚本 自动重新生成 过期时的不记名令牌)

    • 为此,请检查此 Tutorial 以按照此处提供的步骤进行操作。