使用Postman的Django Rest框架令牌身份验证

2024-06-02 08:00:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Postman来测试我的DRF端点,但是我总是得到一个Authentication credentials were not provided.错误。端点工作正常,但我还没有找到如何从邮递员发送请求。在

我可以为用户获取令牌:

enter image description here

但当我尝试使用令牌发送请求时,总是会出现错误:

enter image description here

我将授权类型设置为Inherit auth from parent。在

以下是视图的代码:

class AlbumViewSet(viewsets.ModelViewSet):
    permission_classes = (permissions.IsAuthenticated,)
    queryset = proxies.AlbumProxy.objects.all()
    serializer_class = serializers.AlbumSerializer
    filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter,)
    search_fields = ('name', 'description', 'company__name')
    filter_fields = ('code', 'company')

    def get_permissions(self):
        if self.action == 'retrieve':
            return []

        return super(AlbumViewSet, self).get_permissions()

    def retrieve(self, request, pk):
        password = request.query_params.get('password', None)

        try:
            instance = proxies.AlbumProxy.objects.get(pk=pk)
        except:
            return Response({'success': False, 'code': 1})

        if instance.access_code != password and password != settings.MASTER_KEY:
            return Response({'success': False, 'code': 2})

        instance_to_return = serializers.AlbumSerializer(instance=instance, context={'request': request}).data
        instance_to_return.pop('access_code')
        instance_to_return['success'] = True

        return Response(instance_to_return)

这是我的REST_FRAMEWORK常数,来自settings

^{pr2}$

Tags: toinstanceselfpermissionsgetreturnresponserequest
2条回答

就使用Apache而言,您需要:

WSGIPassAuthorization On

将其添加到您的httpd.conf

更多详细信息there。在

您可以尝试将请求正文中的Token更改为Bearer。在

所以,它应该看起来像:

Bearer <token>

相关问题 更多 >