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