AWS Cognito自定义属性的陷阱与最佳实践

本文深入分析了AWS Cognito自定义属性的重大限制:一旦添加便无法修改或删除,可能导致需要重建用户池并重置所有用户数据。文章探讨了这种设计对基础设施部署和用户体验的影响,并提出了使用后端数据库存储额外用户信息的替代方案。

另一个AWS陷阱:Cognito自定义属性

您可以在用户池中为用户定义额外属性。也许您想存储标准属性未涵盖的信息,例如社交资料或首选货币。

但有一个陷阱:

将其添加到用户池后,您无法删除或更改它。

由于这个问题,我不得不删除所有用户并重新创建用户池(幸运的是这是个人开发环境)。

为什么这是个重大问题?

  • 您最多只能添加50个自定义属性。这是有限资源
  • 您使用代码部署基础设施?现在您无法回滚
  • 或者您使用点击操作?请注意您的点击位置,因为这是一条单行道

更糟糕的是,实际上不可能替换用户池。您无法访问密码和MFA密钥(这是好事),这意味着如果您移动用户,所有内容都将为他们重置。包括他们的sub(主题ID),这可能会影响您的数据库。

我会远离使用自定义属性。

更好的解决方案是什么?您可能已经有一些带有数据库的后端:使用它来存储有关用户的任何额外信息。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计