AWS Cognito-用户配置文件的使用和通过Cognito API的更新或同步到单独的数据库中

问题描述

我从Cognito和移动应用程序开始,在该应用程序中,可以与其他核心功能一起更新用户配置文件,并经常查询池。因此,我正在考虑以下选项:

  1. 直接从应用中使用Cognito API查询池
  2. 使用Cognito API查询池-可能是管理功能? - 来自 后端REST Web服务,基本上包装Cognito API以确保 可移植性,没有供应商锁定

OR

  1. 完全不将Cognito用于用户配置文件数据,而仅用于用户身份验证。在MySQL数据库中创建一个表,其中将用户子作为ID,并将所有其他其他属性(如其网站,照片,配置文件的文字/描述等)用作ID。借助Cognito提供的Lambda触发器来填充该表。

尽管在选项1和2之间进行选择是相当体系结构和战略决策,但由于我不确定使用Cognito池的方式,所以出现了选项3。

在找到 Service Limits of AWS Cognito 之后,我进入了选项3。而且我知道这些是可调的,但是从允许的每秒5个开始,我想知道这是否在某个时候不会成为瓶颈。

任何已经使用Cognito构建了高效应用程序的人:

  1. 您能否与大家分享有关Cognito服务限制和Pool API性能的一般经验(不仅仅是登录/注册)?
  2. 仅将Cognito用于身份验证/授权还是用于完整的用户管理?

谢谢!

解决方法

我们也面临着同样的情况Nikki。我建议使用选项3。其他2个选项将在以后产生更多的麻烦。

  • 在某些时候,我们希望在lambda中为用户提供额外的数据,但是这些数据不是jwt令牌的一部分。我们想知道用户的注册日期。收集该消息的唯一方法是触发一个管理Cognito API,该API正常运行-但当流量显着增加时,由于我们达到了adminGetUser的限制,我们的端点就失败了。
  • 我们遇到的一个问题是,我们必须不断地进行从Cognito到Cognito的数据转换。检查adminGetUser的响应,您将意识到这不是最佳的响应方式。
  • 我要记住的另一件事是,当我们想为用户数据添加一个额外的字段并用特定值填充该字段时,或者如果您需要在其中检索以下项之一的列表,您的实体并与用户一起加入,因为您需要在响应中显示用户元数据。这将是一项艰巨的任务。
  • 一个简单的任务,您可能想通过分页发送给用户列表并对其进行排序可能会有些挑战。您可以list the users来自Cognito,但不能进行排序。

总体而言,我非常喜欢Cognito的简单性,包括身份验证,验证电子邮件,社交登录名和应用程序客户端。出于这个原因,它是完美的,但是我不会在生产准备就绪的环境中将用户元数据隐含在认知中-除非这是一个小的概念证明。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...