视图集的认证和权限
在 Django REST Framework 中,我们可以使用认证(Authentication)和权限(Permission)来控制 API 的访问权限。认证用于验证用户身份,而权限则用于限制用户的操作权限。常用的认证方式包括 Token 认证、Session 认证、Basic 认证等,常用的权限包括 IsAuthenticated、IsAdminUser、AllowAny 等。
要在视图集中使用认证和权限,我们可以分别定义 authentication_classes
和 permission_classes
属性。例如,我们可以定义一个名为 BookViewSet
的视图集类,并指定它的认证方式为 Token 认证,权限为 IsAuthenticated:
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
在这个例子中,我们使用 authentication_classes
属性将认证方式设置为 Token 认证,使用 permission_classes
属性将权限设置为 IsAuthenticated。这样,只有经过 Token 认证并被授权的用户才能访问 BookViewSet
视图集。