3

我在理解用于添加多个登录提供程序的 Amazon AWS Cognito 工作流程时遇到了一些问题,这里有一些 psedu 代码来演示我的问题:

{Code to get CognitoCachingProvider}

Device Cognito ID = A

{Code to get Google Token}

withLogin(Google Token)

if(Identity is changed)
 identityListener(
Device Cognito ID = ID in Cognito Pool)
else(
Device Cognito ID = a;
cognitoprovider.setLogin (Google Token);
)

withLogin(Facebook Token);
if(identity is changed)(
*****Device Cognito ID = ID in cognito Pool;*****
cognitoprovider.setLogin(Google TOken);
cognitoprovider.refresh();)
else
(Cognitoprovider.setLogin(Facebook Token);
cognitoprovider.refresh();)

所以我真正的问题是第二步。假设我想将 Facebook 和 Google 都绑定到特定的 Cognito ID。

三个例子:

1) 没有分配 Cognito ID - 分配 Google+ 和 Facebook 2) 分配给 Google 和没有 Facebook 的 cognito ID - Google 登录的获取不应该影响 Cognito ID - Facebook 登录的获取简单地添加为另一个提供商 3) 没有分配给 Google 的 cognito ID,但分配给 facebook: - 获取 Google 登录会创建一个新的单独的 cognito ID,该 ID 立即被 Facebook 登录令牌的关联 Cognito ID 覆盖

那是对的吗?

4

1 回答 1

3

是的,您对前两种情况的理解是正确的。为了更清楚地说明这一点,Amazon Cognito 在与多个提供商打交道时有两个概念:链接和合并。链接是当您在单个设备上使用提供者 A 登录并且已经有一个 identityId 并且您使用提供者 B 登录时。在这种情况下,identityId 将保持不变,并且提供者 B 将链接到现有身份。现在让我们假设您在设备 X 上使用提供商 A 登录,在设备 Y 上使用提供商 B 登录。这两个最终用户(身份)都将拥有其唯一的身份 ID。现在,如果您在设备 Y 上使用提供商 A 登录,它将导致合并这两个身份中的一个,并返回一个identityId,这两个提供者都与它相关联。我希望这可以消除有关使用多个提供商的任何困惑。

谢谢,
拉希特

于 2015-03-23T18:44:24.763 回答