Така че използвам DRF JWT
за моето удостоверяване. Потребителят подава идентификационни данни и ако е валиден, отговаря с JWT, който се съхранява в sessionStorage
, Всеки път, когато потребителят навигира по защитените маршрути, JWT /api/auth/refresh
за опресняване на маркера, ако той все още е валиден.
Както и да е, преминаване от удостоверяване и по защитени маршрути, където данните се извличат въз основа на това дали потребителят е IsAuthenticated
според ДРФ. Проблемът е, че имам трудности да разбера как да определя IsAuthenticated
в DRF, без отново да има потребителски данни за предоставяне. Трябва да спомена точно сега тествам с Пощальон.
URL адрес на API:
/api/help/questions
Имам възглед като:
class GetQuestionsAPIView(ListAPIView):
queryset = Help.objects.all()
serializer_class = GetQuestionsSerializer
permission_classes = [IsAuthenticated,]
Сериализаторът е:
class GetQuestionsSerializer(ModelSerializer):
class Meta:
model = Help
fields = "__all__"
def validate(self, data):
return data
Имам валиден знак от /api/auth/signin/
, Опитвам се да го предам на /api/help/questions/
маршрут за извличане на списъка с въпроси.
GET /api/help/questions/
не работи, защото иска идентификационни данни. Authentication credentials were not provided.
GET /api/help/questions/
с Content-type: application/json
и „Разрешениеand the token in the header also says
Удостоверения за удостоверяване не бяха предоставени. "
Мислех, че може би трябва да бъде POST
тъй като изпращам идентификационни данни и очаквам въпросите като отговор на сървъра, ако удостоверяването е валидно, но почти едни и същи резултати.
Очевидно не съм най-знаещият по този въпрос, така че всяка помощ ще бъде оценена.
Отговори:
1 за отговор № 1Поставихте своя маркер в заглавието за упълномощаване? Така че след като влезете, получавате означение и трябва да го поставите вътре в заглавките при заявката за вашия защитен URL адрес по този начин:
Authorization: JWT <your_token>
Ето пример за използване curl
:
curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/