Django 电子邮件认证后端
示例
Django的默认身份验证适用于username和password字段。电子邮件身份验证后端将根据email和对用户进行身份验证password。
from django.contrib.auth import get_user_model
class EmailBackend(object):
"""
Custom Email Backend to perform authentication via email
"""
def authenticate(self, username=None, password=None):
user_model = get_user_model()
try:
user = user_model.objects.get(email=username)
if user.check_password(password): # check valid password
return user # return user to be authenticated
except user_model.DoesNotExist: # no matching user exists
return None
def get_user(self, user_id):
user_model = get_user_model()
try:
return user_model.objects.get(pk=user_id)
except user_model.DoesNotExist:
return None将此身份验证后端添加到AUTHENTICATION_BACKENDS设置中。
# settings.py
AUTHENTICATION_BACKENDS = (
'my_app.backends.EmailBackend',
...
)
热门推荐
10 同事们生日祝福语简短
11 新娘妈妈祝福语简短的
12 四十不惑祝福语简短
13 历史老师蛋糕祝福语简短
14 小爱心卡片祝福语简短
15 学生毕业季祝福语简短
16 导师寄语简短祝福语大全
17 女性的生日祝福语简短
18 旅行前祝福语简短英语