Django休息身份验证电子邮件而不是用户名 [英] Django rest auth email instead of username

查看:264
本文介绍了Django休息身份验证电子邮件而不是用户名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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 ='可选'

如何实现?

解决方案

 #这是必需的,否则它要求电子邮件服务器
EMAIL_BACKEND ='django.core.mail.backends。
#ACCOUNT_EMAIL_REQUIRED = True
#AUTHENTICATION_METHOD ='EMAIL'
#ACCOUNT_EMAIL_VERIFICATION ='可选'

ACCOUNT_AUTHENTICATION_METHOD ='电子邮件'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_U SERNAME_REQUIRED = False

#以下是添加到使用电子邮件而不是用户名
AUTHENTICATION_BACKENDS =(
#需要在Django管理员中以用户名登录,不管`allauth`
django.contrib.auth.backends.ModelBackend,

#`allauth`具体的身份验证方法,如通过电子邮件登录
allauth.account.auth_backends.AuthenticationBackend ,


I have a django project in which I am using Django-rest-auth to do authentication. I want to use email with password to authenticate the user and not the username+password.

I have following settings in my settings.py but it didn't do anything for me:

REST_SESSION_LOGIN = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'EMAIL'
ACCOUNT_EMAIL_VERIFICATION = 'optional'

How can I achieve it?

解决方案

Following setting worked:

#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",
)

这篇关于Django休息身份验证电子邮件而不是用户名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆