我想解释一个身份验证流程,希望你能回答亚马逊是否认可这个问题的正确解决方案。
要求:对于每个登录(用户名/密码,Facebook,谷歌等),应该有一个有效的用户池帐户。
Flow Facebook (不存在身份或用户池帐户)。
客户点击“登录Facebook":
1)使用FB AccessToken调用GetOpenIdToken ->
1a)同时,使用FB AccessToken从Facebook获取电子邮件地址
2)使用生成的密码和facebook邮箱调用AdminCreateUser
3)调用AdminInitiateAuth并获取idToken
4)调用GetOpenIdToken,添加cognito用户池的idToken和facebookAccessToken
结果: Cognito用户池中的一个用户和一个链接的联合帐户
对我来说很重要: 4)中的令牌是一个用户池令牌,包含"sub“(对我们的内部数据库很重要的UUID)
好的,这是可以的,效果很好,但是:
Flow Facebook用户返回(身份和链接用户池帐户可用)
客户点击“登录Facebook":
1)使用FB AccessToken调用GetOpenIdToken ->
2)调用DescribeIdentity获取登录列表
2a)我们可以看到有一个链接的用户池id,不需要创建新用户
确切地说,在这一点上出现了一个问题:
如果我只有facebookAccessToken,但有一个链接的用户池登录,我如何获取用户池令牌?
有没有可能仅仅通过facebook的accessToken就能获得该链接用户的用户池数据?
如果这是正确的流,或者此身份验证流不受Cognito支持?
谢谢,马塞尔
发布于 2017-02-10 08:44:06
不,暂时不支持。您已经在具有链接登录(FB和Cognito用户池)的Cognito联合身份中创建了一个身份,但是要使用Cognito用户池进行身份验证,您目前不能使用Facebook访问令牌。获取用户池令牌的唯一方法是使用该帐户的用户名/密码。
我们已经从多个客户那里听到了这一请求,并将考虑在未来的版本中添加它。
发布于 2021-10-31 18:26:01
AWS Cognito目前不支持这些流。您可以在您的identity api上构建自定义流,只需使用带有开发人员凭证的cognito即可。但不推荐
https://stackoverflow.com/questions/42139567
复制相似问题