使用 Cognito 登录 Facebook 重定向到 URL 时出现错误

Cod*_*ein 4 oauth-2.0 facebook-login amazon-cognito aws-cognito

我创建了一个用户投票并将 Facebook 连接到它。这是 AWS 控制台中的样子。

认知脸书

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

但是,当我访问我的托管登录页面并单击 时Continue with Facebook,我会通过 URL 重定向回我的页面

http://localhost:4200/#error_description=attributes%20required:%20[email]&error=invalid_request
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我已按照所有说明进行操作,并将其email作为范围包含在内。我期待access_token在 URL 中。

请帮忙。谢谢!

Rac*_*all 16

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

  • 我已经包含了映射,但问题似乎是 Facebook 没有为所有用户提供电子邮件地址。我不确定如何从 Cognito 的角度处理这个案例 (2认同)

Att*_*que 5

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

picture.size(large) # This does not exists and will cause errors
Run Code Online (Sandbox Code Playgroud)

Facebook 然后向 Cognito 响应一个错误,而 Cognito 只是告诉您所需的属性电子邮件不在请求中。因此,如果您收到此错误消息,则问题很可能不是电子邮件,而是其他设置错误的问题,因此您会收到invalid request

  • 我的天啊。这是正确的答案。在与 Cognito 打交道时,每个角落都潜伏着一种新的粪便。这是多么可怕的事情啊! (2认同)