使用Amazon Cognito Identity和User Pool可以实现此身份验证流程

时间:2017-02-09 14:41:08

标签: amazon-web-services amazon-cognito

我想解释一个身份验证流程,并希望你能回答如果亚马逊认知正确的解决方案。

要求: 对于每个登录(用户名/密码,Facebook,谷歌等),应该有一个有效的用户池帐户。

Flow Facebook(不存在任何身份或用户池帐户)。

客户点击“使用Facebook登录”:

1)调用GetOpenIdToken - >使用FB AccessToken

1a)同时,使用FB AccessToken从Facebook获取电子邮件地址

2)使用生成的密码和facebook电子邮件调用AdminCreateUser

3)调用AdminInitiateAuth并获取idToken

4)调用GetOpenIdToken并为cognito用户池和facebookAccessToken添加idToken

结果:Cognito用户池中的用户和链接的联合帐户

对我来说很重要:来自4)的令牌是一个用户池令牌并包含“sub”(UUID,其中一个对我们的内部数据库很重要)

好的,那没关系,效果很好,但是:

Flow Facebook用户回来(身份和链接的用户池帐户可用)

客户点击“使用Facebook登录”:

1)调用GetOpenIdToken - >使用FB AccessToken

2)调用DescribeIdentity并获取登录列表

2a)我们可以看到有一个链接的用户池ID,不需要创建新用户

此时确切的问题是:

如果我只拥有facebookAccessToken但是链接的用户池登录,我怎样才能获得用户池令牌?

是否可以使用facebook accessToken获取该链接用户的用户池数据?

如果这是正确的流程,还是Cognito不支持此身份验证流程?

由于 烫发

1 个答案:

答案 0 :(得分:2)

目前不支持此功能。您已在Cognito Federated Identities中创建了一个已登录链接(FB和Cognito用户池)的身份,但要使用Cognito用户池进行身份验证,您目前无法使用Facebook访问令牌。获取用户池令牌的唯一方法是使用该帐户的用户名/密码。

我们已经听到了来自多个客户的此请求,并会考虑在将来的版本中添加它。