码迷,mamicode.com
首页 > 其他好文 > 详细

restframwork组件的权限认证

时间:2018-11-09 19:30:09      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:objects   use   lte   response   认证   bsp   framework   ram   token   

在一个视图类下重写  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组件的权限认证

标签:objects   use   lte   response   认证   bsp   framework   ram   token   

原文地址:https://www.cnblogs.com/wen-kang/p/9936550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!