Django Rest框架不接受JWT认证令牌



我使用Django Restful API框架和Simple JWT,并成功创建了一个URL来接收和刷新用户令牌。为了尝试使用令牌进行身份验证,我创建了一个视图,该视图仅列出数据库中的所有帖子。然后,我将IsAuthenticated类分配给视图。

如预期的那样,我得到一条错误消息,说没有提供身份验证凭据。然后,我继续使用Postman发出了一个简单的GET请求,并在"Authorization"中提供了身份验证令牌。选项卡。类型设置为"Bear token_"。不幸的是,我仍然得到"未提供身份验证凭据"的消息。一个403禁止代码。

我还尝试在Headers中提供令牌,以及发出CURL请求,但一切都无济于事。

我的视图是这样的:

class PostListView(generics.ListAPIView):
permission_classes = (IsAuthenticated,)
queryset = Post.objects.filter()

这是序列化器:

class PostListSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('__all__')

Django项目的settings.py:

REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.AllowAny'],
'DEFAULT_AUTHENTICATION_CLASSES:': ('rest_framework_simplejwt.authentication.JWTAuthentication',)
}
CORS_ALLOW_ALL_ORIGINS = True  # For testing purposes

我已经在网上学习了几个不同的教程,阅读了大量的帖子以及Simple JWT的官方文档。

您正在做的是试图过滤数据,而您的基本目的只是列出您的模型。对于过滤,请确保您阅读了文档DRF过滤。

在您的代码中尝试这些更改。我希望它对你有用。

Settings.py

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}

Views.py

class UserList(generics.ListAPIView):
permission_classes = (IsAuthenticated,)
queryset = Post.objects.all()
serializer_class = PostListSerializer
在此之后,尝试使用访问令牌访问您的API。要了解更多关于泛型视图的知识,你可以通过这个链接查看DRF中的泛型视图。

相关内容

  • 没有找到相关文章

最新更新