gpt4 book ai didi

amazon-web-services - 无法在 Postman 中测试 Cognito 认证的 API 网关调用(它是一个 ADMIN_NO_SRP_AUTH 池)

转载 作者:行者123 更新时间:2023-12-04 16:42:41 25 4
gpt4 key购买 nike

我已经成功登录到我通过我的 iOS 设备和 Cognito 创建的 API 网关。问题是我想使用 postman 来测试 API 调用,然后在手机上实现它们。目前,Postman 无法进行身份验证(尽管 AWS 表示可以)。无论我做什么,我都会收到 401 错误(在屏幕截图中可见)

我尝试过的

从 AWS Api Gateway 下载 postman 集合 enter image description here

然后将其导入postman,并将身份验证切换为“AWS Signature” enter image description here

这是 postman 生成的标题信息的屏幕截图 enter image description here

最佳答案

如果我理解正确,您正在尝试调用内置 Cognito Authoriser 背后的 API 网关端点。

我认为您误解了如何调用 Cognito 授权 API 网关:

  1. 针对 Cognito 授权以获取 id_token
  2. 调用 API 网关,将 Authorization header 设置为 id_token
  3. 每小时更新一次id_token

通过启用 ADMIN_NO_SRP_AUTH,您可以简化第一步(登录 Cognito),以便您可以更轻松地手动完成。 (如果没有,则需要进行 SRP 计算)。

获取 id_token 的一种方法是使用 aws cli(更多方法显示在 the documentation 中):

aws cognito-idp admin-initiate-auth --user-pool-id='[USER_POOL_ID]' --client-id='[CLIENT_ID]' --auth-flow=ADMIN_NO_SRP_AUTH --auth- parameters="USERNAME=[USERNAME],PASSWORD=[PASSWORD]"

然后您可以将结果 (AuthenticationResult.IdToken) 用作 Postman 中的 Authorization header (不需要 AWS v4 签名 - 这仅用于 IAM 身份验证) .

注意更全面的图像解释 can be found here .

关于amazon-web-services - 无法在 Postman 中测试 Cognito 认证的 API 网关调用(它是一个 ADMIN_NO_SRP_AUTH 池),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56096332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com