我正在尝试使用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
答案 0 :(得分:9)
通过查看docs我会说你应该删除默认TokenAuthentication
AUTHENTICATION_CLASSES
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
标题似乎也有不同的格式:
现在,为了访问受保护的API,您必须包含
Authorization: JWT <your_token>
标题。