未连接到任何电子邮件地址的 facebook 帐户的 django-allauth facebook 登录问题

django-allauth facebook login issue with facebook accounts that is not connected to any email address

我有一个网站,用户只能使用 Facebook 登录。 大多数时候它工作正常。但有时,当用户使用 facebook 登录时,它会再次要求提供电子邮件地址。

但是我有一个新问题。 那些用手机号码创建的facebook,没有绑定任何电子邮件地址的人无法登录。

那么我该如何解决这个问题呢?

我正在使用 django-allauth 进行社交登录。

只是我的假设,但因为 facebook 不允许您再从 GRAPH 中检索 phone_number,它将使用空白电子邮件,因此如果它通过,您将有重复的空白电子邮件 来自配置文档 https://django-allauth.readthedocs.io/en/latest/configuration.html

SOCIALACCOUNT_AUTO_SIGNUP (=True)

Attempt to bypass the signup form by using fields (e.g. username, email) retrieved from the social account provider. If a conflict arises due to a duplicate e-mail address the signup form will still kick in.

因此,如果用户没有电子邮件,则需要手动输入电子邮件地址

我对此的建议是使用 allauth 的信号以某种格式保存电子邮件,例如 timestamppre_social_login 信号 https://django-allauth.readthedocs.io/en/latest/signals.html