【问题标题】:Getting the "Created" time for a Cognito user with AWS Amplify (or aws-sdk)?使用 AWS Amplify(或 aws-sdk)获取 Cognito 用户的“创建”时间?
【发布时间】:2019-09-08 22:24:53
【问题描述】:

我有一个 React Native 移动应用程序,我在其中使用 AWS Amplify 来处理我的 Cognito 用户池。

我正在尝试获取当前登录用户的“创建”日期,因为我想在应用启动时向现有用户显示警报,但我不希望新用户收到该警报。我计划使用用户的创建日期来了解他们是否应该看到警报。

在 AWS 控制台的 Cognito 服务中查看我的用户池时,我发现每个用户都有一个“已创建”属性:

但是,我不确定如何从应用程序中访问该属性。我可以在文档中找到的唯一相关方法是 Auth.currentAuthenticatedUser(),但它的响应中似乎没有包含“已创建”时间戳。

我确实在 Cognito 文档中找到了对 AdminGetUser 的引用,其中确实包含 UserCreateDate 属性,但是我不想在应用程序本身中使用管理员凭据,因此我正在寻找替代方法。

任何建议将不胜感激!

【问题讨论】:

  • 我已经彻底查看了文档。但我还没有找到获得相同信息的非管理员 API 调用。您是否考虑过将信息存储在自定义属性中?用户无需 API 调用的管理员凭据即可获取自定义属性的填充数据。
  • 默认情况下,非管理员调用无法使用这样的基本属性,这太荒谬了。现在我必须手动将其添加为自定义属性,或者通过服务器代理调用单个属性?太可笑了

标签: amazon-web-services react-native aws-amplify aws-sdk-js


【解决方案1】:

有一种方法可以让您使用AdminGetUser API,而无需向用户提供直接的管理员访问权限。由于您使用的是 Amplify,因此您可以发布调用 Lambda 函数的 API(REST 或 GraphQL)。 Lambda 函数又配置了所需的cognito-idp:AdminGetUser 权限,用于读取用户数据,然后通过 api 返回。

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 2020-07-08
    • 2019-04-28
    • 2021-02-24
    • 2020-08-31
    • 2018-12-20
    • 2019-03-04
    • 2020-09-11
    • 2017-04-23
    相关资源
    最近更新 更多