djangorestframework-jwt未提供身份验证凭据

时间:2017-03-14 14:11:29

标签: django django-rest-framework django-rest-framework-jwt

我正在尝试使用django rest_framework_jwt。我可以让它生成一个令牌,但是当我尝试将它在标题中发送到受保护的视图时,我得到了“未提供身份验证凭据”。'

我发送的标头格式为:

"Authorization": "Token SomeRandomToken"

settings.py

    INSTALLED_APPS = [
        ...
    rest_framework.authtoken
]

REST_FRAMEWORK = {
   'DEFAULT_AUTHENTICATION_CLASSES': (
       'rest_framework.authentication.TokenAuthentication',
       'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
   ),
   'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
   ),
}

views.py

class UserList(mixins.ListModelMixin,
               mixins.CreateModelMixin,
               generics.GenericAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    authentication_classes = (JSONWebTokenAuthentication,)
    queryset = User.objects.all()
    serializer_class = UserSerializer

1 个答案:

答案 0 :(得分:9)

通过查看docs我会说你应该删除默认TokenAuthentication AUTHENTICATION_CLASSES

   'DEFAULT_AUTHENTICATION_CLASSES': (
       'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
   ),

标题似乎也有不同的格式:

  

现在,为了访问受保护的API,您必须包含Authorization: JWT <your_token>标题。