【问题标题】:How to search Amazon Cognito Identity?如何搜索 Amazon Cognito 身份?
【发布时间】:2015-06-01 22:41:49
【问题描述】:

在 android 应用程序中,我将 Cognito 身份设置如下:

Dataset dataset = ....syncClient.openOrCreateDataset("WHATEVER");
dataset.put("name", name);
dataset.put("email", email);

因此,身份 ID 以这种格式创建:

us-east-1:1xxxxxx-999d-999x-NNNx-fxxxxxxxxxxx

AWS Web 控制台上的身份浏览器只允许通过身份 ID 进行搜索。

现在我想通过电子邮件搜索身份(因为这就是我对用户的全部了解)。如何在亚马逊网络控制台中通过电子邮件搜索身份?

或者,我可以将电子邮件 ID 设置为身份 ID 本身 - 如果可以,如何设置?

【问题讨论】:

    标签: android amazon-web-services amazon-cognito


    【解决方案1】:

    到目前为止,在控制台上搜索身份的唯一方法是通过身份 ID。我们已经听取了其他客户的要求,希望通过其他因素更轻松地进行搜索,并将在未来的服务更新中考虑这一点。

    【讨论】:

    • 有没有办法设置自定义身份 ID(如电子邮件 ID 或用户名)而不是生成一个?
    • 目前还没有。添加日志记录机制可能有助于弥合这一差距。
    • 那么这里的唯一用户身份是什么,它如何在其他移动设备上可用?我想我可以设置用户的电子邮件 ID,然后从另一台设备上查找它,以检索用户数据。
    • identityId 是 Cognito 生成的字符串。在给定的池中,它对于登录是唯一的。因此,如果用户 A 在两台设备上使用 facebook 登录同一应用程序,他将获得相同的 id。您似乎正在使用 android sdk,因此可以通过对凭据提供程序的 getCachedIdentityId() 调用来检索它(在您授权用户之后)。
    • 在我的 Android 游戏中,我为最终用户维护虚拟硬币 - 这存储在他的 congnito id 的数据集记录 [COINS==90] 中。现在我想给最终用户额外的 10 个硬币作为奖励,他用他的 facebook 电子邮件 ID 给我发了电子邮件——这就是我所拥有的。我无法找到他的 congnito 记录/数据集,以允许添加硬币。我在这里错过了什么?
    【解决方案2】:

    您可以执行的检索 identityId 的方法是编写一个 Lambda 函数,当 Cognito 同步事件被触发时,该函数将在 DynamoDB 表中存储您的用户的电子邮件地址和 identityId。

    执行此操作后,您可以使用用户电子邮件地址在 DynamoB 中进行搜索,以检索玩家的 IdentityID。

    【讨论】:

      【解决方案3】:

      如果您不想添加 AWS 服务,您现在可以做的是通过您自己的 API 将该 ID 和电子邮件存储在您自己的数据库中的某个位置。或者按照 pierre-leduc 所说的去做

      【讨论】:

        猜你喜欢
        • 2017-06-08
        • 2016-05-26
        • 2016-05-10
        • 2016-08-27
        • 2016-09-26
        • 2016-10-23
        • 2014-09-26
        • 2021-03-05
        • 2017-06-02
        相关资源
        最近更新 更多