Thi*_*ker 10 python django django-rest-framework django-allauth django-rest-auth
我有一个django项目,我在其中使用Django-rest-auth进行身份验证.我想使用带密码的电子邮件来验证用户身份,而不是用户名+密码.
我在settings.py中有以下设置,但它对我没有任何作用:
REST_SESSION_LOGIN = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'EMAIL'
ACCOUNT_EMAIL_VERIFICATION = 'optional'
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现它?
Thi*_*ker 16
设定工作后:
#This is required otherwise it asks for email server
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# ACCOUNT_EMAIL_REQUIRED = True
# AUTHENTICATION_METHOD = 'EMAIL'
# ACCOUNT_EMAIL_VERIFICATION = 'optional'
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
#Following is added to enable registration with email instead of username
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth`
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
)
Run Code Online (Sandbox Code Playgroud)
我也在使用这个包,通过调用这个配置它对我有用:
ACCOUNT_AUTHENTICATION_METHOD = 'email'
Run Code Online (Sandbox Code Playgroud)
小心这个配置,这个配置属于django-allauth,看这个:
class AuthenticationMethod:
USERNAME = 'username'
EMAIL = 'email'
USERNAME_EMAIL = 'username_email'
Run Code Online (Sandbox Code Playgroud)
上面的类是 中的设置allauth,因此您应该将“EMAIL”写成小写。
| 归档时间: |
|
| 查看次数: |
5385 次 |
| 最近记录: |