amazon-web-services - Cognito 用户池中的自定义属性是否适合存储动态用户信息?

标签 amazon-web-services aws-cognito serverless cognito

Cognito 的 AWS 文档说:

Each custom attribute: Cannot be removed or changed once added to the user pool.



发件人:https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes

我相信他们指的是自定义属性的名称,而不是值本身。

因此,例如可以从 Lambda 函数更改该值。假设我们在我们的电子商务网站中为每个用户存储保真度积分。

自定义属性是否适合存储此类信息?或者我应该创建一个链接到用户池中的 UserId 的新 DynamoDB 表?

最佳答案

您当然可以将此信息存储在 Cognito 自定义属性中。如果你要这样做,我会考虑两件事:

1) 确保用于对用户池进行身份验证的 Cognito 用户池客户端无权写入此属性。否则,流氓用户可以编写代码来根据用户池对自己进行身份验证,并根据需要为自己提供尽可能多的保真度。因此,您可能需要考虑将自定义属性更新隐藏在服务后面。

2) 根据您需要更新此属性的频率以及您的整体 Cognito 使用模式,您在使用 Cognito updateAttributes API 时可能会遇到 RequestLimitExceeded 错误。几乎每次我尝试使用 Cognito 作为用户信息的主要数据存储时,我都会受到限制。 AWS 支持会提高您的限制,但错误会在没有警告的情况下发生,这在生产环境中并不是很好。我最终总是默认使用 DynamoDB 表。当然这只是我的经验所以YMMV

关于amazon-web-services - Cognito 用户池中的自定义属性是否适合存储动态用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601827/

相关文章:

node.js - 如何将 chrome-aws-lambda 模块与 AWS lambda 函数一起使用?

amazon-web-services - 如何让我的 Auth0 权限进入 AWS HTTP API Jwt 授权方的访问 token 的范围声明?

amazon-web-services - AWS ElasticBeanstalk Tomcat 和 Spring 中的 Websocket 无法正常工作

amazon-web-services - AWS Cognito - 用户池联合与身份池联合

c# - AWS Cognito : How to make authentication request in . 注册/登录后的网络

amazon-web-services - S3 公共(public)只读文件但私有(private)目录

java - DynamoDBMapper : How to get saved item?

rest - 无服务器功能与常规服务器设计的差异

google-cloud-platform - "serverless"和 "fully managed"有什么区别?