【问题标题】:Cognito user pool does not show up API Gateway after setting authorizer设置授权方后,Cognito 用户池不显示 API 网关
【发布时间】:2019-11-07 22:48:12
【问题描述】:

我为调用 lambda 函数的 API 网关服务创建了 Cognito 用户池授权方。 授权者被完全忽略,我可以在没有任何令牌的情况下调用服务。 我已多次部署该服务。 我创建了多个网关 API,但仍然遇到同样的问题。

与我有授权器工作的旧 API 相比,我能看到的唯一区别是,当我检查 API 中的“资源”选项卡时。 旧服务方法 (POST) 显示 授权:COGNITO_USER_POOL 并且所有新的 API 都显示授权:无。 是 API 网关出了问题还是我错过了一个步骤。

【问题讨论】:

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


    【解决方案1】:

    要解决此问题,您应该执行以下步骤:

    1. 前往 AWS API Gateway 控制台。
    2. 选择有问题的 REST API。
    3. 单击“方法请求”选项卡。
    4. 选择“授权”选项卡旁边的下拉菜单。
    5. 选择您已通过唯一名称定义的 Cognito 用户池授权者。如果您不记得 Cognito 用户池授权者的名称,可以在 API Gateway Authorizers 部分中查找。
    6. 选择授权方,保存更改,然后重新部署 API。
    7. 从 POSTMAN(或任何 REST 客户端)或浏览器中测试 REST API。
    8. 如果您不提供来自 Cognito 的 JWT 令牌,您将收到 HTTP 401 Unauthorized 错误。

    是的,你确实是对的。您正面临授权者无法运行的问题,因为授权者未链接到 REST API。要链接它,您需要从“方法请求”选项卡手动完成。还有一点需要注意的是,授权者可以在 API Gateway 中的多个 REST API 之间重复使用。

    【讨论】:

    • 谢谢!我一直在“集成请求”而不是“方法请求”下查看
    猜你喜欢
    • 2018-11-19
    • 2017-10-25
    • 2017-09-04
    • 2020-03-31
    • 2018-08-07
    • 2018-01-12
    • 2022-11-10
    • 2018-01-24
    • 2020-11-27
    相关资源
    最近更新 更多