restframwork组件的权限认证

Posted wen-kang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了restframwork组件的权限认证相关的知识,希望对你有一定的参考价值。

在一个视图类下重写  authentication_classes = [TokenAuth,]然后去认证类TokenAuth里面实现认证逻辑代码

认证类代码块:

1 class TokenAuth(BaseAuthentication):
2     def authenticate(self,request):
3         token=request.GET.get("token")
4         token_obj=Token.objects.filter(token=token).first()
5         if not token_obj:
6             raise exceptions.AuthenticationFailed("用户验证失败,500")
7         else:
8             return token_obj.user,token_obj.token

可以继承基类object,但是需要重写两个方法authenticate和authenticate_header

from rest_framework.authentication import BaseAuthentication 导入模板类便于继承

直接继承 BaseAuthentication 可以只重写前面一个

视图类代码块:

 1 class BookShow(viewsets.ModelViewSet):
 2     authentication_classes = [TokenAuth,]
 3 
 4     queryset = Book.objects.all()
 5     serializer_class = BookModelSerializers
 6     def list(self, request, *args, **kwargs):
 7         print(request.user)
 8         print(request.auth)
 9         book_list=Book.objects.all()
10         bs=BookModelSerializers(book_list,many=True,context={"request":request})
11         return Response(bs.data)

 

以上是关于restframwork组件的权限认证的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

drf三大认证:认证组件-权限组件-权限六表-自定义认证组件的使用

django的RBAC认证z;自定义auth_user表;认证组件权限组件源码分析;认证组件;权限组件

drf-jwt认证组件权限组件频率组件的使用

三大认证之认证组件和权限组件

drf认证组件权限组件jwt认证签发jwt框架使用