【问题标题】:AWS Cognito user pool - total users count and queryingAWS Cognito 用户池 - 用户总数和查询
【发布时间】:2021-10-05 19:45:46
【问题描述】:

我正在开发一个使用 Cognito 作为身份提供者的应用程序。

我需要从 Cognito 获取用户总数以显示在 UI 上。但问题是 Cognito 没有提供用户总数,但它确实提供了来自描述用户池 api 的估计用户数。我不明白为什么“估计”计数而不是确切计数?是因为联合用户吗?

如果使用身份提供者,任何人都不会在他们自己的应用程序中拥有用户(或者他们会吗?)。那么,为什么 Cognito 的查询能力如此基础?为了处理这种情况,是否应该在他们自己的应用程序中也拥有一份用户副本?但在这种情况下,挑战是如何同步用户? App Sync 仅适用于身份池,而不适用于用户池。

【问题讨论】:

    标签: amazon-web-services amazon-cognito


    【解决方案1】:

    我和你有同样的疑问。我看到的是 Cognito API 没有专门满足您需求的端点。

    您应该(以传统方式)使用ListUser(您可能必须多次使用它),当您获得所有用户时,您的数组长度将是用户总数。

    我找到的解决办法是:

    1. 在我的数据库中创建一个表,我可以在其中保存该统计信息,即一个计数器,其中包含我的用户池的确认或注册用户数(取决于您的要求)。
    2. Launch a trigger 每次确认用户并在关联的 lambda 中,我都会修改上述表中的计数器(增加它)。触发器可以从用户池本身的触发器部分进行配置。

    【讨论】:

    • 我确实考虑过这些方法,但问题是:
    • 我确实考虑过这些方法,但问题是: 1. 使用 ListUser api,我们可以一次获取最多 60 个用户,并且 API 有速率限制,所以如果我们不可行有很多用户要求总数。的用户。 2. 在自己的数据库中添加用户是可能的,但是如果从 Cognito 控制台中删除它或者如果它是联合用户(从另一个身份提供者登录)并从那里删除会发生什么? Cognito 不提供删除用户的触发器。
    • 你是对的。我想你必须向 AWS Cognito 团队建议他们添加那个触发器 ??‍♂️
    • 无论如何,你总会有这个限制,所以你应该通知客户端不要从 web 控制台删除用户
    猜你喜欢
    • 2018-11-07
    • 2018-05-16
    • 2018-01-31
    • 2020-06-14
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多