DRF Данный токен не подходит ни для одного типа токенов
Я создаю простое приложение DRF и у меня возникли проблемы с настройкой JWT.
Мой главный вид выглядит следующим образом:
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
filter_backends = [filters.SearchFilter]
filterset_fields = ["category"]
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
def get_queryset(self):
queryset = super().get_queryset()
category = self.request.query_params.get("category", None)
if category:
queryset = queryset.filter(category=category)
return queryset
Мои урлы выглядят следующим образом:
urlpatterns = [
path("admin/", admin.site.urls),
path("product-manager/", include("product_manager.urls")),
path("", TokenObtainPairView.as_view(), name='token_obtain_pair')
]
Теперь, когда я ввожу путь к индексу и указываю имя пользователя и пароль в полезной нагрузке, я получаю токены доступа и обновления. Я копирую токен доступа и помещаю его в раздел Authorization
в Postman в JWT Bearer при попытке получить доступ к моему ProductViewSet и получаю
{
"detail": "Given token not valid for any token type",
"code": "token_not_valid",
"messages": [
{
"token_class": "AccessToken",
"token_type": "access",
"message": "Token is invalid or expired"
}
]
}
Мои настройки:
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework_simplejwt.authentication.JWTAuthentication"
),
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 5,
}
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"product_manager",
"rest_framework",
"rest_framework_simplejwt",
]
Chat GPT говорит мне отлаживать представление, но когда я пробую это сделать, отладчик останавливается только на точке останова на настройке, но не когда я пытаюсь получить доступ к конечным точкам, связанным с этим представлением. Пожалуйста, помогите