(相关资料图)

视图集的认证和权限

在 Django REST Framework 中,我们可以使用认证(Authentication)和权限(Permission)来控制 API 的访问权限。认证用于验证用户身份,而权限则用于限制用户的操作权限。常用的认证方式包括 Token 认证、Session 认证、Basic 认证等,常用的权限包括 IsAuthenticated、IsAdminUser、AllowAny 等。

要在视图集中使用认证和权限,我们可以分别定义 authentication_classespermission_classes属性。例如,我们可以定义一个名为 BookViewSet的视图集类,并指定它的认证方式为 Token 认证,权限为 IsAuthenticated:

from rest_framework.authentication import TokenAuthenticationfrom rest_framework.permissions import IsAuthenticatedfrom .models import Bookfrom .serializers import BookSerializerclass BookViewSet(viewsets.ModelViewSet):    queryset = Book.objects.all()    serializer_class = BookSerializer    authentication_classes = [TokenAuthentication]    permission_classes = [IsAuthenticated]

在这个例子中,我们使用 authentication_classes属性将认证方式设置为 Token 认证,使用 permission_classes属性将权限设置为 IsAuthenticated。这样,只有经过 Token 认证并被授权的用户才能访问 BookViewSet视图集。

推荐内容