【问题标题】:How to link developer authenticated user across devices in Cognito如何在 Cognito 中跨设备链接开发人员身份验证的用户
【发布时间】:2015-01-30 12:18:44
【问题描述】:

我只是想了解一下这个框架,我想确认我的方法是正确的。

我可以使用以下方法验证我自己的用户:getOpenIdTokenForDeveloperIdentity,并提供一个 IdentityPoolId 和一个登录密钥对,其中包含我的开发者提供商名称和我提供的令牌。

现在,据我了解,当用户登录第二台设备时,为了让 Cognito 了解这是同一用户,我必须为其提供一个 IdentityId。但是,我不确定以编程方式获取IdentityId 以使其与初始登录匹配的最佳方式。

我能想到的唯一技术是将IdentityId 存储在我自己的数据库中,并提供我自己的检索方法。这是最好的方法吗?或者我应该以不同的方式使用这个框架?

总的来说,我还是 AWS 的初学者,我只是想了解这个框架的最佳实践。

顺便说一句,我正在为我的后端实现 Android SDK 和 PHP SDK。

【问题讨论】:

    标签: amazon-web-services amazon-cognito


    【解决方案1】:

    当您使用 getOpenIdTokenForDeveloperIdentity 时,它会返回与您提供的用户标识符相关联的身份 ID。因此,如果您使用的用户标识符是用户的用户名,当您从第二台设备使用相同的用户名调用 getOpenIdTokenForDeveloperIdentity 时,它将返回关联的身份 ID。除非您愿意,否则无需存储身份 ID,每次调用 getOpenIdTokenForDeveloperIdentity 时都会提供给您。

    这篇博文可能会有所帮助:

    http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident

    【讨论】:

    • 酷,我现在知道它是如何工作的。无论用户如何使用我的身份验证访问应用程序,我在登录密钥对中用作我的 USER_IDENTIFIER 的任何内容都必须保持一致。我想我应该为此提出另一个问题,但只是使用了足够安全的用户名或 ID,还是我应该生成自己的哈希或其他东西?
    • 由于您应该从后端服务调用 getOpenIdTokenForDeveloperIdentity 并使用您的开发人员凭据签署请求,因此使用用户名应该没问题。但是,您可以随意散列用户标识符。
    【解决方案2】:

    当您使用 Cognito 时,您的用户首先通过身份提供者(例如 facebook、google 或其他 Oauth 提供者)进行身份验证,然后您从中获取的令牌被发送到 Cognito,这是将您的用户信息绑定在一起的关键跨其他设备上的登录。

    您不需要将此信息存储在数据库中,除非您正在编写自己的自定义身份提供者并且不使用可用的公共身份提供者之一。

    【讨论】:

    • 您好,感谢您的回答。我正在编写自己的自定义身份提供者。这就是我使用 getOpenIdTokenForDeveloperIdentity 方法的原因。在这种情况下,最好的方法是自己存储 IdentityId 吗?这就是它的全部吗?
    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2015-04-15
    • 2016-06-29
    • 2017-01-29
    相关资源
    最近更新 更多