Django restframework 权限

django restframework 权限的流程:

当客户请求进来后,会通过dispatch方法,在dispatch中有perform_permissions方法,它主要就是用来做权限验证。要做权限验证,要先获取权限验证的类,它调用get_permissions方法,获取配置的权限的类的并实例化,返回这个实例化对象的列表。再循环执行这些实例化对象的has_permission方法,如果是访问某个具体的对象则是执行has_objects_permission,我们在自定义权限类时,需要重写这两个方法,否则相当于没做权限验证,因为基类中默认返回True.

类似这样指定权限验证的类:

class MyPermission(BasePermission):
    def has_object_permission(self, request, view, obj):
        """控制对obj对象的访问权限,此案例决绝所有对对象的访问"""
        return False

class BookInfoView(APIView):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoSerializer
    permission_classes = [MyPermission, ]

它调用的类,方法,以及流程如下:

上一篇:JWT 认证

下一篇:Django restframework 节流