【问题标题】:How to auto generate new Bearer Token in Postman for GCP Storage如何在 Postman 中为 GCP 存储自动生成新的不记名令牌
【发布时间】:2021-06-10 14:25:48
【问题描述】:

我正在尝试使用 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) 每次作为预请求脚本执行?

谢谢

【问题讨论】:

    标签: rest postman google-cloud-storage postman-pre-request-script


    【解决方案1】:

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

    如果是这样,您可以通过添加 --log-http 参数从 gcloud auth print-access-token 命令中获得灵感,以可视化 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
    

    【讨论】:

    • 它显示了它正在重定向的物理 IP 地址,以及其他几个标头和正文。请提供在运行时从 Postman 生成访问令牌时可以遵循的任何特定方向。
    • 我编辑了我的答案。对你更好吗?
    【解决方案2】:

    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 以按照其中提供的步骤进行操作。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2021-04-24
      • 2021-07-14
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 2017-09-03
      • 2018-11-27
      相关资源
      最近更新 更多