Django allauth,需要普通帐户的电子邮件验证,而不是社交帐户

时间:2018-11-13 12:15:01

标签: python django authentication django-allauth

所以我使用django-allauth,即使我之前发现有一篇指向configuration settings的帖子,用于设置电子邮件验证设置,也似乎对我不起作用。

使用他们的Facebook帐户登录后,用户重定向到电子邮件验证表单,我希望他们登录并重定向到其个人资料页面。

我有以下设置;

settings.py

ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_FORMS = {
'signup': 'app.users.forms.CustomSignupForm',
}
SOCIALACCOUNT_PROVIDERS = {
    'facebook':
       {'METHOD': 'oauth2',
        'SCOPE': ['email','public_profile'],
        'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
        'EXCHANGE_TOKEN': True,
        'LOCALE_FUNC': lambda request: 'nl_NL',
        'VERIFIED_EMAIL': True,
        'VERSION': 'v2.4'}
}
SOCIALACCOUNT_EMAIL_VERIFICATION = 'none'

即使我知道Facebook用户有可能拥有一个没有经过验证的电子邮件地址的帐户,但我仍然希望Facebook用户使用其Facebook帐户登录后能够自动登录。

requirements.txt

python == 3.7

django == 2.1.3

django-allauth == 0.38.0

1 个答案:

答案 0 :(得分:0)

古老的问题,但是如果有人遇到相同的问题,则解决方案非常简单。您只需将SOCIALACCOUNT_EMAIL_VERIFICATION = 'mandatory'添加到settings.py文件中。

此外,如果您设置了ACCOUNT_EMAIL_VERIFICATION = 'mandatory',则社交帐户验证也将自动设置为“强制性”。

https://django-allauth.readthedocs.io/en/latest/configuration.html(在页面末尾)