如何在基于 class 的视图中使用 django REST JWT 授权和身份验证
how to use django REST JWT authorization and authentication in class based views
我正在使用 JWT 身份验证我正在广泛使用这种类型的授权应用程序。
我正在尝试弄清楚如何在视图中使用它。
例子。假设我只想允许用户在具有正确权限的情况下创建批准的场所。我应该向该视图添加什么才能访问用户?
我知道 django 有 request.user
但我如何打开它?如果没有令牌传递到 header,它是否始终打开并且 request.user 为空?还是中间件?我最终遇到的问题是,关于这一点的信息很多,但在视图上实际使用 JWT 的信息很少。
请帮忙。
# for creating an approved venue add ons later
class CreateApprovedVenue(CreateAPIView):
queryset = Venue.objects.all()
serializer_class = VenueSerializer
Django 休息框架 jwt 文档
https://jpadilla.github.io/django-rest-framework-jwt/
Django rest framework 权限文档
http://www.django-rest-framework.org/api-guide/permissions/
所以我发现了这个资源并正在查看它。
https://code.tutsplus.com/tutorials/how-to-authenticate-with-jwt-in-django--cms-30460
这个例子是遮光:
# users/views.py
class CreateUserAPIView(APIView):
# Allow any user (authenticated or not) to access this url
permission_classes = (AllowAny,)
def post(self, request):
user = request.data
serializer = UserSerializer(data=user)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
要使用JWT认证,您需要进行以下安装步骤:https://jpadilla.github.io/django-rest-framework-jwt/#installation
完成后,您可以通过简单地添加 authentication_classes
来包含身份验证,如下所示
# for creating an approved venue add ons later
class CreateApprovedVenue(CreateAPIView):
authentication_classes = (JSONWebTokenAuthentication, )
queryset = Venue.objects.all()
serializer_class = VenueSerializer
并且在所有请求方法中,您都可以使用 request.user
用户。对于 CreateAPIView
你可以这样做:
def post(self, request, *args, **kwargs):
user = request.user
...
我正在使用 JWT 身份验证我正在广泛使用这种类型的授权应用程序。
我正在尝试弄清楚如何在视图中使用它。
例子。假设我只想允许用户在具有正确权限的情况下创建批准的场所。我应该向该视图添加什么才能访问用户?
我知道 django 有 request.user
但我如何打开它?如果没有令牌传递到 header,它是否始终打开并且 request.user 为空?还是中间件?我最终遇到的问题是,关于这一点的信息很多,但在视图上实际使用 JWT 的信息很少。
请帮忙。
# for creating an approved venue add ons later
class CreateApprovedVenue(CreateAPIView):
queryset = Venue.objects.all()
serializer_class = VenueSerializer
Django 休息框架 jwt 文档 https://jpadilla.github.io/django-rest-framework-jwt/
Django rest framework 权限文档 http://www.django-rest-framework.org/api-guide/permissions/
所以我发现了这个资源并正在查看它。 https://code.tutsplus.com/tutorials/how-to-authenticate-with-jwt-in-django--cms-30460
这个例子是遮光:
# users/views.py
class CreateUserAPIView(APIView):
# Allow any user (authenticated or not) to access this url
permission_classes = (AllowAny,)
def post(self, request):
user = request.data
serializer = UserSerializer(data=user)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
要使用JWT认证,您需要进行以下安装步骤:https://jpadilla.github.io/django-rest-framework-jwt/#installation
完成后,您可以通过简单地添加 authentication_classes
来包含身份验证,如下所示
# for creating an approved venue add ons later
class CreateApprovedVenue(CreateAPIView):
authentication_classes = (JSONWebTokenAuthentication, )
queryset = Venue.objects.all()
serializer_class = VenueSerializer
并且在所有请求方法中,您都可以使用 request.user
用户。对于 CreateAPIView
你可以这样做:
def post(self, request, *args, **kwargs):
user = request.user
...