我的 AWS Cognito 池将电子邮件作为必需属性。所有注册我的应用程序的用户都被要求提供他们的电子邮件。
我最近将 Facebook 作为身份提供者添加到我的用户池中。
问题是 Facebook 并不总是提供电子邮件,在这种情况下,Cognito 会将新用户重定向到一个错误页面,上面写着“需要电子邮件”。
我想提示用户输入他/她的电子邮件,然后继续注册过程,而不是仅仅以错误结束。有没有办法做到这一点?
最佳答案
Cognito 用户池目前无法做到这一点。
我在与客户合作时遇到了同样的例子,即使同意适当的范围,Facebook 也不会在 OpenID token 中提供它。
我怀疑电子邮件可以通过此后的 API 检索,因此您可能会在 Cognito 用户池中获得一些运气 trigger去检索电子邮件并将其填充到认证后(如果丢失)。
否则,除了将电子邮件地址设为可选,然后围绕此设计客户体验之外,您无能为力。
关于oauth-2.0 - 当需要电子邮件属性但 Facebook 不提供时,用户如何通过 Facebook 注册 Cognio 用户池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48154575/