Oauth 2.0 使用Cognito登录Facebook时重定向到URL时出错

Oauth 2.0 使用Cognito登录Facebook时重定向到URL时出错,oauth-2.0,facebook-login,amazon-cognito,aws-cognito,Oauth 2.0,Facebook Login,Amazon Cognito,Aws Cognito,我已经创建了一个用户投票,并将Facebook连接到它。下面是它在AWS控制台中的外观 我还将email设置为注册所需的属性 然而,当我访问我的托管登录页面并单击“继续使用Facebook”时,我会被重定向回带有URL的页面 http://localhost:4200/#error_description=attributes%20required:%20[email]&error=invalid_request 为什么会这样?我遵循了所有说明,并将电子邮件作为一个范围。我希望URL

我已经创建了一个用户投票,并将Facebook连接到它。下面是它在AWS控制台中的外观

我还将
email
设置为注册所需的属性

然而,当我访问我的托管登录页面并单击“继续使用Facebook”时,我会被重定向回带有URL的页面

http://localhost:4200/#error_description=attributes%20required:%20[email]&error=invalid_request
为什么会这样?我遵循了所有说明,并将
电子邮件
作为一个范围。我希望URL中有一个
access\u令牌


请帮忙。谢谢

错误消息表示电子邮件地址是必需的,这表明电子邮件是用户池中必需的属性。通过包含“email”范围,您已经做了正确的事情,但是您还必须通过将Facebook email映射到Cognito email属性,在Amazon Cognito控制台中包含提供者(在您的例子中是Facebook)的属性映射。请尝试一下,让我们知道它是否有效。

错误消息表示电子邮件地址是必需的,这表明电子邮件是用户池中的必需属性。通过包含“email”范围,您已经做了正确的事情,但是您还必须通过将Facebook email映射到Cognito email属性,在Amazon Cognito控制台中包含提供者(在您的例子中是Facebook)的属性映射。请试一试,让我们知道它是否有效。

导致我出现此问题的原因是我请求Facebook提供一个不存在的属性。就我而言:

picture.size(large) # This does not exists and will cause errors

然后,Facebook向Cognito回复一个错误,Cognito只是告诉您请求中没有所需的属性email。因此,如果您收到此错误消息,问题很可能不是电子邮件,而是其他设置错误,因此您会收到一个
无效请求

导致此问题的原因是我从Facebook请求了一个不存在的属性。就我而言:

picture.size(large) # This does not exists and will cause errors

然后,Facebook向Cognito回复一个错误,Cognito只是告诉您请求中没有所需的属性email。因此,如果您收到此错误消息,问题很可能不是电子邮件,而是其他设置错误,因此您会收到一个
无效请求

我也遇到类似问题,但我在错误响应中列出了更多属性:

#error_description=attributes+required%3A+[name%2C+family_name%2C+email%2C+address]&error=invalid_request
您可以在URL中的错误消息中看到所需的属性与我在AWS Cognito用户池中拥有的所需属性相匹配

由于无法修改已经创建的用户池的属性,因此我必须创建一个新的用户池,其中的字段为空,如下所示


保存此新用户池中的更改后,我在Facebook开发门户中更新了此新用户池使用的域,不再出现此错误。

我遇到了类似问题,但我在错误响应中列出了更多属性:

#error_description=attributes+required%3A+[name%2C+family_name%2C+email%2C+address]&error=invalid_request
您可以在URL中的错误消息中看到所需的属性与我在AWS Cognito用户池中拥有的所需属性相匹配

由于无法修改已经创建的用户池的属性,因此我必须创建一个新的用户池,其中的字段为空,如下所示


在我保存了这个新用户池中的更改后,我在Facebook开发门户中更新了这个新用户池使用的域,并且不再出现这个错误。

我已经能够通过为我的应用程序创建一个帐户来发生这个错误。然后进入facebook,进入应用程序的设置,告诉它不允许发送电子邮件。令人不安的是,科尼托似乎不知道再次要求电子邮件。我可以通过访问()并再次请求令牌来读取设置。它导致一个弹出窗口,显示我的应用程序正在请求我的电子邮件。一旦我接受了,设置就回到了facebook设置中,应用程序运行正常。我不知道Cognito是否太蠢,在请求信息时再次请求作用域。

我已经能够通过为我的应用程序创建一个帐户来发生此错误。然后进入facebook,进入应用程序的设置,告诉它不允许发送电子邮件。令人不安的是,科尼托似乎不知道再次要求电子邮件。我可以通过访问()并再次请求令牌来读取设置。它导致一个弹出窗口,显示我的应用程序正在请求我的电子邮件。一旦我接受了,设置就回到了facebook设置中,应用程序运行正常。我不知道Cognito在询问信息时是否愚蠢到再次请求作用域。

实际上,有两种方法可以消除此错误:

\error\u description=属性%20必需:%20[电子邮件]&error=请求无效

1st:您必须通过进入facebook下的
设置和隐私>常规>联系人
,将电子邮件作为facebook的主要联系人。这是最可行的步骤,因为当您已经设置了无法覆盖的cognito用户池时,您会遇到这个错误

2nd:在设置身份验证和创建用户池期间,将电子邮件作为必需属性删除


请始终记住,用户池的这些配置不能被覆盖,如果您需要电子邮件作为必需属性或更改任何其他设置,则需要删除现有用户池并重新创建该用户池。因此,在创建用户池之前,您必须确定所需的配置。

实际上,有两种方法可以消除此错误:

\error\u description=属性%20必需:%20[电子邮件]&error=请求无效

1st:您必须通过进入facebook下的
设置和隐私>常规>联系人
,将电子邮件作为facebook的主要联系人。这是最可行的步骤,因为当您已经设置了无法覆盖的cognito用户池时,您会遇到这个错误

<