警惕AWS Cognito的又一个“陷阱”:自定义属性的不可逆之痛
你可以在用户池中为用户定义额外的属性。或许你想存储一些标准属性未涵盖的信息,例如社交媒体资料或首选货币。
但这里有一个陷阱:
在将其添加到用户池后,你无法移除或更改它。
我不得不因为这个原因(所幸是个人开发环境)删除所有用户并重新创建用户池。
为什么这是个大事?
- 你最多只能添加50个自定义属性。这是一种有限资源。
- 你使用代码来部署基础设施?现在你无法回滚。
- 或者你使用点击操作?请注意你的点击位置,因为这是一条单行道。
更糟糕的是,实际上不可能替换一个用户池。你无法访问密码和MFA密钥(这是一件好事),这意味着如果你迁移用户,他们的一切都将被重置。包括他们的sub(主体ID),这可能会影响你的数据库。
我会尽量远离使用自定义属性。
更好的解决方案是什么?你可能已经拥有带有某种数据库的后端:使用它来存储关于用户的任何额外信息。