来自 AWS Cognito 用户池的用户 ID

User Id from AWS Cognito User Pool

我期待在我的应用程序中使用 AWS Cognito 用户池。 还有几个问题:

  1. 是否可以在 Cognito 中存储一些敏感数据:例如用户权限(我认为不可以,因为用户可以读写关于他自己的数据 - 但我想确定)
  2. 如何get/addId(用作外键)到用户记录?我有几个选择:

    一个。利用用户名——但我想使用随机字符串作为 ID;甚至我以这种方式填写用户名并为登录启用别名 - 这个字段仍然在客户端填充 - 所以我无法控制它。

    b。添加自定义字段 - how/where 以正确填充它?

    c。使用访问令牌的 sub 字段 - 没有正确的方法来获取它 - 除了 base64 解码访问令牌 - 看起来很老套。

  1. 目前 Cognito 用户池属性不支持此用例。您可以使用 Cognito 同步并创建数据集。您可以以用户无权访问此敏感数据集的方式配置您的角色。
  2. 对于#b,您可以在用户池配置的属性部分找到自定义属性。您可以通过取消选中可变选项来使属性不可变。请注意,这不会强制您的自定义 ID 具有唯一性。 'sub' 来自 Id 令牌的字段可能是最佳选择,因为它也强制执行唯一性。在不解析令牌的情况下使其可用可能被视为功能,可以在 AWS 论坛上请求。