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

Posted

技术标签:

【中文标题】djangorestframework-jwt 未提供身份验证凭据【英文标题】:Authentication credentials were not provided with djangorestframework-jwt 【发布时间】:2017-08-04 22:12:23 【问题描述】:

我正在尝试使用 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】:

从查看 docs 我想说你应该从你的 AUTHENTICATION_CLASSES

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

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

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

【讨论】:

混淆了这两个文档。更正标题解决了这个问题。谢谢

以上是关于djangorestframework-jwt 未提供身份验证凭据的主要内容,如果未能解决你的问题,请参考以下文章

如何解码令牌并获取 Django 的 djangorestframework-jwt 包的信息

djangorestframework-jwt 分页器 三种

使用 djangorestframework-jwt gain_jwt_token 视图时是不是需要创建一个简单的登录视图?

django drf JWT

实现“记住我”Django

Django Rest 框架 JWT