【问题标题】:Testing Cognito user pool auth with API gateway使用 API 网关测试 Cognito 用户池身份验证
【发布时间】:2023-03-04 11:15:01
【问题描述】:

我希望我的客户端应用程序使用受 Cognito 用户池保护的 API 网关在我的 dynamoDb 实例中插入记录。

我创建了我的用户池并将其作为授权方添加到我的 API 网关方法调用中。使用 AWS Cli 我运行了以下命令,它给了我访问令牌:

aws cognito-idp initiate-auth ...

我的基础架构似乎正在运行,现在我需要朝哪个方向实用地实现以我的用户身份在用户池中登录、获取令牌并调用我的 API 方法?

【问题讨论】:

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


    【解决方案1】:

    嗯,这并不难。您需要遵循某些步骤。

    1. 在 Cognito 用户池中创建一个用户。通过您选择的激活消息确认它。根据用户池设置,它可以是短信或电子邮件。

    2. 确认用户后,需要调用 Cognito SDK 的登录接口。由于我对 NodeJS 很熟悉,所以让我获取方法名称 - https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html。将 AuthFLow 设置为 ADMIN_NO_SRP_AUTH 。来自此 APi 的响应将有一个 idToken、一个 accessToken 和一个 refreshToken。由于您的客户端需要这些凭据,因此请以您的首选语言编写 API,将其公开给您的客户端并返回令牌。

    3. 使用 idToken 对您的 API Gateway Authorizer 进行 API 调用。这就是您使用 Postman 传递令牌的方式 -

    您可以使用任何客户端复制相同的内容。如果您遇到任何错误,最好向我展示您的 APIG 授权器配置。

    【讨论】:

    • 感谢您的回答,很高兴知道我的思路是正确的。但是当我发送 idToken 时,我在邮递员中收到一条“禁止”消息?
    • 您是否为您的用户池正确配置了 API 网关授权方?
    • 我相信 ADMIN_NO_SRP_AUTH 已被 ADMIN_USER_PASSWORD_AUTH 取代
    猜你喜欢
    • 2018-01-12
    • 2017-10-25
    • 2016-12-25
    • 2017-03-25
    • 2018-02-11
    • 1970-01-01
    • 2021-04-08
    • 2016-07-24
    • 1970-01-01
    相关资源
    最近更新 更多