微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Postman 中为 GCP 存储自动生成新的承载令牌

如何解决如何在 Postman 中为 GCP 存储自动生成新的承载令牌

我正在尝试使用 Postman 通过云存储 Rest API (https://storage.googleapis.com/upload/storage/v1/b)文件从本地上传到 GCP 存储桶。

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

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

有没有办法在 Postman 中每次都执行 $(gcloud auth print-access-token) 作为预请求脚本?

谢谢

解决方法

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

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


编辑 1

如果您执行请求,您可以看到向此 URL https://oauth2.googleapis.com/token

执行了一个帖子

要重现调用,您可以尝试使用 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 Storage API 或其他 Google API 进行交互:

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

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

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

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

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

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

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

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

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

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

  3. 配置 Postman 以使用预请求脚本和服务凭据(预请求脚本在到期时自动重新生成不记名令牌) >

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。