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