最后一件事我对Django Rest Framework有点困惑,那就是权限类和身份验证类之间的区别。
这是我的 settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAdminUser',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'PAGINATE_BY': 10
}
在我看来,我有以下...
class ProfileList(generics.ListCreateAPIView):
"""
API endpoint that represents a list of users.
"""
permission_classes = (permissions.IsAdminUser,)
model = Profile
serializer_class = ProfileSerializer
def pre_save(self, obj):
obj.owner = self.request.user
我假设上面会发生的是,只有管理员用户才能访问可浏览的 API,而具有有效令牌的用户仍然可以获得 json 请求。但是,情况并非如此,IsAuthenticated 似乎授予他们访问权限,但 = 这仍然允许我的用户在登录时访问在线版本。
我希望所有拥有有效令牌的用户都能访问,但只有管理员用户有权查看带有会话的在线 API 版本,这可能吗?