django_restframework 权限验证
权限验证分为两种:
一局部权限验证
在View当中 添加验证类
class MyPermission(BasePermission): ''' 自己编写的权限类 如果用户的user_type字段是1 那么返回False没有访问的权限 ''' def has_permission(self,request, view): message = "必须是VIP才能访问" if request.user.user_type == 1: #权限验证不通过 return False #权限验证通过 return True
class OrderView(APIView): #认证可以加多个 可以在加一个认证类 authentication_classes = [authtication,authtication1] # authentication_classes = [authtication] #权限验证 permission_classes = [MyPermission,] def get(self,request,*args,**kwargs): self.dispatch() # print("用户",request.user) # print("**", request.auth) # 拿到数据库中的数据、做权限。如果不等于1 则无权访问 print("***********:",request.user.user_type) ret = {"code":1000, "msg":None,"data":None} try: ret["data"] = ORDER_DICT except Exception as e: pass return JsonResponse(ret)
二 全局验证
2.1 设置权限认证的位置 以及代码
2.2 setting当中设置全局视图都需要 进行权限
2.3 设置不需要权限设置的视图