Django REST framework -10-自定义认证类
2023-12-31 22:37:48
1 编写自定义验证类
可以在项目 app 的任意一个文件中编写这个类,之后设置一下就可以了。
比如在 users 应用下新建一个文件 users_auth.py, 添加如下内容
from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
from django.db.models import Q
User = get_user_model()
class CustomBackend(ModelBackend):
def authenticate(self, request, username=None, password=None, **kwargs):
try:
# 通过用户名或邮箱来获取用户对象
user = User.objects.get(
Q(username=username) |
Q(email=username ) |
Q(mobile = username)
)
# 验证用户的密码
if user.check_password(password):
return user
except Exception:
return None
2 在 settings.py 中设置
# 自定义登录验证类
AUTHENTICATION_BACKENDS = (
'users.users_auth.CustomBackend', # 注意后面的逗号
)
文章来源:https://blog.csdn.net/qq_22648091/article/details/135305219
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!