我想仅使用 Cognito用户池进行Facebook登录,这可能是使用内置的登录表单,但我需要使用自己的登录表单。
理论上,当谈到自定义表单时,它应该不难:在我从FB收到用户对象后,我将用户和电子邮件属性绑定到我的用户池中的属性并保存。
但是如何处理密码字段和未来的身份验证?在这里,我在旅程中失败了......
...
userPool.signUp('FoobarUser', '**password?**', attributeList, null, function(err, result){
...
在深入研究文档时,我尝试实现一个身份池(联合身份),并设法以数据集的形式保存用户信息,但是然后我意识到,如果可能的话,查询这些套装将会是一个巨大的痛苦。
也许我没有理解这些概念,如果有人可以建议使用Cognito以一种组织良好的方式管理facebook登录,我会非常感激。
答案 0 :(得分:12)
所以这是我从你的查询中理解的。
<强>设置强>
我的2美分
在您的用户界面中,有一个登录按钮。单击它时,应重定向到您的用户池authorization端点
如果要将自己的UI与多个提供程序一起使用,请在客户端中使用相同的UI,然后单击UI中的相应按钮(例如Facebook),将用户重定向到授权端点,但在URL中附加identity_provider
如果您想查看所有支持的身份提供商的名称,请使用ListIdentityProviders API调用
这样,所有Facebook用户都将自动在您的用户池中创建。当然,他们的名字会像 Facebook_123jkjdwj 一样随机,但根据你的属性映射,他们的所有细节都会从令牌中正确填充。此外,来自特定提供商的所有自动创建的用户都会添加到自动创建的用户组&#39; Userpoolid_providername&#39;例如。 us_east_1_xxxx_Facebook。