【发布时间】:2019-05-18 15:30:55
【问题描述】:
我正在尝试使用 Postman 来测试我的 DRF 端点,但我总是收到 Authentication credentials were not provided. 错误。端点工作正常,但我还没有找到如何从 Postman 发送请求。
我能够为用户获取令牌:
但是当我尝试使用令牌发送请求时,总是会收到错误消息:
我将授权类型设置为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:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 20,
'DEFAULT_METADATA_CLASS': 'rest_framework.metadata.SimpleMetadata'
}
【问题讨论】:
-
""我将授权类型设置为从父级继承身份验证。"" 在 POSTMAN 中将其更改为 No Auth
-
@JPG 我得到同样的错误
-
我发现返回错误的是带有 Apache 的远程服务器。本地主机向 Postman 请求返回成功。
-
使用什么HTTP服务器?
标签: python django django-rest-framework postman