认证组件

发布时间 2023-12-26 16:29:04作者: wellplayed

认证组件的书写

例:书写登录认证

第一步:新建一个py文件(以auth为例)

第二步:书写认证类,并继承BaseAuthentication

# 首先导入模块
from rest_framework.authentication import BaseAuthentication

# 书写认证类(以登录认证为例)
class LoginAuth(BaseAuthentication):

 

第三步:在类中重写authenticate方法,完成认证

class LoginAuth(BaseAuthentication):
    def authenticate(self, request):
        token = request.query_params.get('token')
        if not token:
            raise AuthenticationFailed('请先登录!')
        user_token = UserToken.objects.filter(token=token).first()
        if user_token:
            user = user_token.user
            return user, user_token
        else:
            raise AuthenticationFailed('token不合法!')

 

第四步:使用认证类,在视图函数内书写

authentication_classes = [LoginAuth]