Android Amazon AWS Cognito工作流程确认

时间:2015-03-22 18:16:11

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

我一直在理解用于添加多个登录提供程序的Amazon AWS Cognito Workflow的一些问题,这里有一些用于演示我的问题的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分配了一个认知ID,没有Facebook         - 获取Google登录不应影响Cognito ID         - Facebook登录的收购只是作为另一个提供商添加 3)没有分配给谷歌的认知ID,但是没有分配给facebook:        - 获取Google登录会创建一个新的独立的身份识别ID,该ID会立即被Facebook登录令牌的相关Cognito ID覆盖

这是对的吗?

1 个答案:

答案 0 :(得分:3)

是的,您对前两种情况的理解是正确的。为了更好地了解这一点,Amazon Cognito在处理多个提供商时有两个概念:链接和合并。链接是指在单个设备上您使用提供商A登录并且已经拥有identityId并且您使用提供商B登录。在此方案中,identityId将保持不变,提供商B将链接到现有身份。现在让我们说您在设备X上与提供商A一起登录,在设备Y上与提供商B一起登录。这两个最终用户(身份)都将拥有其唯一的标识ID。现在,如果您在设备Y上使用提供商A登录,则会导致这两个身份的合并,并返回一个identityId,这将使两个提供商都与之关联。我希望这可以解决使用多个提供商的任何困惑。

谢谢,
Rachit

相关问题