赞
踩
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication', # session认证
)
}
authentication_classes = [SessionAuthentication]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
在具体的视图中通过permission_classes属性来设置
permission_classes = (IsAuthenticatedOrReadOnly,) # 给具体的类视图配置权限
默认提供的可选权限
AllowAny 允许所有用户
IsAuthenticated 仅通过认证的用户
IsAdminUser 仅管理员用户
IsAuthenticatedOrReadOnly 认证的用户可以完全操作,否则只能get读取
def get_permissions(self):
if self.action == "read":
return (IsAuthenticated(),) # 返回的是一个元祖
return(AllowAny(),)
class MyPermission(BasePermission):
def has_permission(self, request, view):
return True # True 全部放行
def has_object_permission(self, request, view, obj):
""" 控制对obj 对象的访问权限,此案例解决所有对对象的访问"""
if obj.id >6: # 不能访问id 大于6的对象的信息
return False
return True
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。