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

DRF 权限的流程

时间:2018-03-01 21:52:37      阅读:666      评论:0      收藏:0      [点我收藏+]

标签:info   hat   return   django   cts   exception   ota   ica   div   

DRF 权限的流程


django rest framework入口是 dispatch,然后依次

--->>封装请求--->>处理版本--->>>认证--->>>权限--->>>限制访问频率


(1)auth需要通过token唯一标识来认证

技术分享图片

技术分享图片

技术分享图片

(2)通过auth认证后得到,用户user信息,但是没有admin的权限

权限用来做进一步做职责的划分

技术分享图片

技术分享图片

技术分享图片

代码

class MyPermission(object):
        message = '无权访问'
        def has_permission(self,request,view):
            if request.user == 'userAdmin':
                return True
            return False

class GoodsListView(APIView):
    #
    # 先 登录认证 authentication_classes = [Myauthentication,]
    # 不同等级的权限 依次 验证  permission_classes = [userPermission,adminPermission]
    permission_classes = [MyPermission,]
 
    def get(self,request,*args,**kwargs):
        goods = Goods.objects.all()
        goods_serializer = GoodsSerializer(goods,many=True)
        return Response(goods_serializer.data)

    # 权限的错误提示信息

    def permission_denied(self, request, message=None):
        """
        If request is not permitted, determine what kind of exception to raise.
        """
        if request.authenticators and not request.successful_authenticator:
            raise exceptions.NotAuthenticated(detail='自定义信息')
        raise exceptions.PermissionDenied(detail=message)

DRF 权限的流程

标签:info   hat   return   django   cts   exception   ota   ica   div   

原文地址:https://www.cnblogs.com/big-handsome-guy/p/8490448.html

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