【问题标题】:How to access AWS API after integrated with cognito user pool与 cognito 用户池集成后如何访问 AWS API
【发布时间】:2019-03-21 23:13:05
【问题描述】:

我已经为我的 Lambda 函数创建了 API,并在邮递员中测试了 URL,我可以查看响应。 现在,为了安全起见,我已将 Cognito 用户池授权者集成到我的 API。现在我尝试使用 API 并获得如下响应

{
    "message": "Unauthorized"
}

我的 cognito 用户池拥有 App 客户端 ID 和 App 客户端密码。现在,我需要帮助来使用邮递员验证 API。

【问题讨论】:

  • 谢谢维沙尔。根据您的建议,我已经实施了注册和登录并能够获得 Accesstoken。现在我使用该 accesstoken 访问我的 API 仍然收到相同的错误消息“未经授权”。请让我知道我需要做什么。
  • 您可能需要提供更多详细信息,例如当您获得 Unauthorizer 异常时所看到的异常/日志。但是您应该查看您的 ApiGateway api 的 cloudwatch 日志,以确定它为什么没有按预期工作。
  • 谢谢维沙尔。在授权标头中使用 ID 令牌更改 AccessToken 后,我的 API 正在工作。

标签: java amazon-web-services aws-lambda aws-api-gateway amazon-cognito


【解决方案1】:

根据具体的资源方法配置,您可能需要发送 ID 令牌而不是访问令牌。仔细阅读了 AWS 文档 Integrate an API with a User Pool。步骤 6 和 7 是确定应发送哪个令牌的关键。总结如下:

如果在受保护的资源方法(方法执行步骤)上,OAuth Scopes 设置设置为NONE,则应发送 ID 令牌。如果输入范围值,则应发送访问令牌。

【讨论】:

  • 感谢您的宝贵时间。我在 OAuth Scopes 中选择了无。所以我知道我需要发送 ID 令牌来验证我的 API。我试图获取 ID 令牌,现在我正在尝试在 PostMan 中进行测试。在提供 API 网关 URL 的 URL 和标题中添加了作为授权的密钥名称和作为 TokenID 的值,这是我从我的 JavaScript 中获取的。我仍然收到如下回复。 {“消息”:“未经授权”}
  • 谢谢。现在我能够得到回应。非常感谢@ajb3ck
猜你喜欢
  • 2018-08-23
  • 2018-05-16
  • 2017-02-28
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 2016-09-26
  • 2018-10-28
  • 2021-08-11
相关资源
最近更新 更多