JSONWebTokenAuthentication

JSONWebTokenAuthentication

我正在尝试使用django rest_framework_jwt。我可以获取它以生成 token ,但是当我尝试将其在 header 中发送到 protected View 时,我得到“未提供身份验证凭据”。

我要发送的 header 格式为:

"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

最佳答案

通过查看docs,我会说您应该从您的默认设置中删除默认的TokenAuthenticationAUTHENTICATION_CLASSES

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

而且标题似乎具有不同的格式:

10-06 05:47