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

drf的权限扩充

时间:2020-04-08 20:39:54      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:管理   为我   jwt   基本   min   div   zhang   lis   cat   

drf框架为我们提供了基本的权限验证。主要包括三种验证

  1、AllowAny  所有用户

  2、IsAuthenticated  验证过的用户

  3、IsAdminUser  超级管理员

这些权限人员不一定满足项目的权限需求。那么如果我们想定义新的权限,需要继承BasePermission

#定义新的权限
class SVIPPermission(BasePermission):
    message = "必须是SVIP才能访问"

    def has_permission(self, request, view):
        if request.user.id != 1:
            return False
        return True

使用新的权限

#jwtapp/permisson

#
新权限的局部使用 class UserList(APIView): permission_classes = [SVIPPermission] # 接口中加权限 authentication_classes = [JSONWebTokenAuthentication] def get(self,request, *args, **kwargs): print(request.META.get(HTTP_AUTHORIZATION, None)) return Response({name:zhangsan}) def post(self,request, *args, **kwargs): return Response({name:zhangsan})
#全局使用
REST_FRAMEWORK = {
    DEFAULT_AUTHENTICATION_CLASSES: (
            rest_framework_jwt.authentication.JSONWebTokenAuthentication,
        rest_framework.authentication.SessionAuthentication,
        rest_framework.authentication.BasicAuthentication,
    ),
    DEFAULT_PERMISSION_CLASSES: (
        jwtapp.permisson.SVIPPermission,
     ),
}    

 

drf的权限扩充

标签:管理   为我   jwt   基本   min   div   zhang   lis   cat   

原文地址:https://www.cnblogs.com/ppzhang/p/12662573.html

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