parent
3d235b6acb
commit
7fe81c8d3f
@ -0,0 +1,28 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.backends import ModelBackend
|
||||
|
||||
|
||||
class EmailOrUsernameModelBackend(ModelBackend):
|
||||
#lht: """
|
||||
#lht: 允许使用用户名或邮箱登录
|
||||
#lht: """
|
||||
|
||||
def authenticate(self, request, username=None, password=None, **kwargs):
|
||||
#lht: 根据输入内容判断是邮箱还是用户名
|
||||
if '@' in username:
|
||||
kwargs = {'email': username}
|
||||
else:
|
||||
kwargs = {'username': username}
|
||||
try:
|
||||
user = get_user_model().objects.get(**kwargs)
|
||||
if user.check_password(password):
|
||||
return user
|
||||
except get_user_model().DoesNotExist:
|
||||
return None
|
||||
|
||||
def get_user(self, username):
|
||||
#lht: 根据用户名获取用户对象
|
||||
try:
|
||||
return get_user_model().objects.get(pk=username)
|
||||
except get_user_model().DoesNotExist:
|
||||
return None
|
||||
Loading…
Reference in new issue