zoukankan      html  css  js  c++  java
  • django-rest-framework权限验证

    django-rest-framework权限验证

    在项目根目录下新建utils的文件

    • 新建permissions.py
        from rest_framework.permissions import BasePermission
        
        
        class MyPermission(BasePermission):
          
            message = '必须用户id为1的人才能访问'
      
            def has_permission(self, request, view):
                if request.user.id != 1:
                    return False
                return True
    
    • 自定义的权限验证类必须继承BasePermission, 且实现has_permission的成员方法
    • 返回为False表示不通过验证
    • 定义类变量message可以实现自定义错误信息返回

    内置的权限验证类

    • AllowAny: 无限制
    • IsAuthenticated: 登陆用户开放
    • IsAdminUser: 只有is_staff为True的用户才开放
    • IsAuthenticatedOrReadOnly: 登陆的用户无限制,未登录的用户只读

    使用内置的权限

    class PermissionRequired(BasePermission):
    
        def has_permission(self, request, view):
            user = request.user
            perms = view.perms if view.perms else []
            if user.has_perms(perms):
                return True
            return False
    
    
    class Index(views.APIView):
        permission_classes = [PermissionRequired]
        perms = ['student.add_role']
    
        def get(self, request):
            return Response('66')
    

    调用内部的权限校验,通过view对象拿到所需的参数,就可以完成对django内部的权限的调用

  • 相关阅读:
    四月书籍
    iOS 第三方登录之 QQ登录
    百度面试经验之谈 ----------转
    OC浅析一
    书目列表
    UIStroryboard分类
    ios基础笔记(一)
    IOS笔记-代码块(微博项目)-1.0
    IOS控件内容 对齐方式
    android同一个TextView设置不同颜色字体
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11650516.html
Copyright © 2011-2022 走看看