【问题标题】:AWS Cognito with Facebook and Google: unique IdentityId?AWS Cognito 与 Facebook 和 Google:唯一的 IdentityId?
【发布时间】:2016-01-16 20:58:41
【问题描述】:

在我的 Web 应用程序中,我希望允许用户使用 2 个可能的提供商(Facebook、Google)登录并使用 AWS Cognito 检索凭证。

据我了解,如果用户 (john@domain.com) 使用他的 Facebook 帐户登录,Cognito IdentityId 将与他使用他的 Google 帐户登录时不同。

假设用户使用相同的电子邮件地址 (john@domain.com) 登录他的 Facebook 和 Google 帐户,我如何确保该用户在 Cognito 中拥有一个唯一的 IdentityId?

我不希望用户拥有 2 个不同的 IdentityId。如果我可以将 john@domain.com 关联到单个 IdentityId,那就太好了。

【问题讨论】:

    标签: facebook-login google-signin amazon-cognito


    【解决方案1】:

    Cognito 不知道用于注册帐户的电子邮件。如果同一用户在两台不同的设备上进行身份验证,其中一台使用 facebook,另一台使用 google,它将给出两个不同的 id。

    但是,可以说它们是相互关联的。如果同一用户要在一台设备上登录 facebook,他们将获得身份 A。如果他们在与 Cognito 通信时通过包含两者的登录令牌将身份 A 链接到他们的 google 帐户,那么 Cognito 会知道他们' 是关联的,并且未来与两个提供者之一的任何身份验证都会给出相同的 id。

    如果在 Cognito 被告知链接它们之前 Facebook 和 Google 都已经链接到一个 id,那会有点偏差 - 在这种情况下,使用的 id 可能是两者中的任何一个。

    【讨论】:

    • 关于您的最后一段:如果 Facebook 和 Google 帐户都生成了不同的 IdentityId,是否可以合并 2 个不同的 IdentityId?
    • 是的。 Cognito 不知道是谁在提供者上创建了帐户,因此,您只需在身份验证调用(即 GetId)中将两个提供者的登录令牌提供给 Cognito 一次。完成一次后,它们将合并,其中一个身份将被禁用,另一个将是您将使用的身份。
    • 未来使用两个令牌中的任何一个(或两者)的调用将映射回合并后的 id。
    • 谢谢,但是如何同时获取两个提供商的登录令牌?
    猜你喜欢
    • 2016-12-13
    • 2016-07-20
    • 2016-04-09
    • 2018-04-01
    • 2017-11-26
    • 1970-01-01
    • 2018-07-26
    • 2018-05-16
    • 2022-12-20
    相关资源
    最近更新 更多