AWS Cognito - 通过 Cognito API 使用和更新用户配置文件或同步到单独的数据库
AWS Cognito - User profile usage and update via Cognito API or sync into separate database
我开始使用 Cognito 和一个移动应用程序,其中除了其他核心功能外,还可以更新用户个人资料,并且经常查询池。因此,我正在考虑以下选项:
- 直接从应用程序使用 Cognito API 查询池
- 使用 Cognito 查询池 API - 可能是管理功能? - 来自
后端 REST Web 服务,基本上包装 Cognito API 以确保
可移植性和无供应商锁定
或
- 根本不要将 Cognito 用于用户配置文件数据,而仅用于用户身份验证。在 MySQL 数据库中创建一个 table,将用户订阅作为 ID 和所有其他附加属性,如他们的网站、照片、文本/配置文件描述等。在提供的 Lambda 触发器的帮助下填充它来自 Cognito。
虽然在选项 1 和选项 2 之间进行选择是架构和战略决策,但由于我不确定如何使用 Cognito Pools,选项 3 突然出现。
在发现 Service Limits of AWS Cognito 之后,我选择了选项 3。我知道这些是 adjustable,但从每秒允许 5 个开始,我想知道这是否会在某个时候成为瓶颈..
任何已经使用 Cognito 构建了高效应用程序的人:
- 您能否分享一下您对池 API 的 Cognito 服务限制和性能的总体体验(不仅仅是登录/注册)?
- 使用 Cognito 仅用于身份验证/授权还是用于完整的用户管理更好?
谢谢!
我们遇到过同样的情况 Nikki。我会推荐选项 3。其他 2 个选项会导致更多麻烦。
- 在某些时候,我们希望在我们的 lambda 中为用户提供额外的数据,但这些数据不是 jwt 令牌的一部分。我们想知道用户的注册日期。收集数据的唯一方法是触发其中一个管理 Cognito API——工作正常——但是当流量显着增加时,我们的端点出现故障,因为我们达到了 adminGetUser.
的限制
- 我们遇到的一个问题是我们必须不断地进行从 Cognito 到 Cognito 的数据转换。检查 adminGetUser 的响应,您会发现这不是最好的响应。
- 我还记得的另一件事是,当我们想为用户数据添加一个额外的字段并用特定值填充它时,或者如果您有一个必须检索列表的要求您的实体之一并将其与用户一起加入,因为您需要在响应中显示用户元数据。这将是一项极具挑战性的任务。
- 一个简单的任务,您可能想要发回带有分页和排序的用户列表,这可能有点具有挑战性。您可以从 Cognito list the users 但不能排序。
总的来说,我真的很喜欢 Cognito 在身份验证、验证电子邮件、社交登录、应用程序客户端方面的简单性。出于这个原因,它是完美的,但我不会在生产就绪环境中将用户元数据保存在 cognito 中——除非它是一个小的概念证明。
我开始使用 Cognito 和一个移动应用程序,其中除了其他核心功能外,还可以更新用户个人资料,并且经常查询池。因此,我正在考虑以下选项:
- 直接从应用程序使用 Cognito API 查询池
- 使用 Cognito 查询池 API - 可能是管理功能? - 来自 后端 REST Web 服务,基本上包装 Cognito API 以确保 可移植性和无供应商锁定
或
- 根本不要将 Cognito 用于用户配置文件数据,而仅用于用户身份验证。在 MySQL 数据库中创建一个 table,将用户订阅作为 ID 和所有其他附加属性,如他们的网站、照片、文本/配置文件描述等。在提供的 Lambda 触发器的帮助下填充它来自 Cognito。
虽然在选项 1 和选项 2 之间进行选择是架构和战略决策,但由于我不确定如何使用 Cognito Pools,选项 3 突然出现。
在发现 Service Limits of AWS Cognito 之后,我选择了选项 3。我知道这些是 adjustable,但从每秒允许 5 个开始,我想知道这是否会在某个时候成为瓶颈..
任何已经使用 Cognito 构建了高效应用程序的人:
- 您能否分享一下您对池 API 的 Cognito 服务限制和性能的总体体验(不仅仅是登录/注册)?
- 使用 Cognito 仅用于身份验证/授权还是用于完整的用户管理更好?
谢谢!
我们遇到过同样的情况 Nikki。我会推荐选项 3。其他 2 个选项会导致更多麻烦。
- 在某些时候,我们希望在我们的 lambda 中为用户提供额外的数据,但这些数据不是 jwt 令牌的一部分。我们想知道用户的注册日期。收集数据的唯一方法是触发其中一个管理 Cognito API——工作正常——但是当流量显着增加时,我们的端点出现故障,因为我们达到了 adminGetUser. 的限制
- 我们遇到的一个问题是我们必须不断地进行从 Cognito 到 Cognito 的数据转换。检查 adminGetUser 的响应,您会发现这不是最好的响应。
- 我还记得的另一件事是,当我们想为用户数据添加一个额外的字段并用特定值填充它时,或者如果您有一个必须检索列表的要求您的实体之一并将其与用户一起加入,因为您需要在响应中显示用户元数据。这将是一项极具挑战性的任务。
- 一个简单的任务,您可能想要发回带有分页和排序的用户列表,这可能有点具有挑战性。您可以从 Cognito list the users 但不能排序。
总的来说,我真的很喜欢 Cognito 在身份验证、验证电子邮件、社交登录、应用程序客户端方面的简单性。出于这个原因,它是完美的,但我不会在生产就绪环境中将用户元数据保存在 cognito 中——除非它是一个小的概念证明。