/ / Bestimmen der IsAuthentifizierung in DRF Verwenden von DRF-JWT zum Abrufen eines Listentests mit Postman - django, rest, api, django-rest-framework, jwt

Bestimmen von IsAuthenticated in DRF Verwenden von DRF-JWT zum Abrufen eines Listentests mit Postman - Django, Rest, API, Django-Rest-Framework, JWT

Also ich benutze DRF JWT für meine Authentifizierung. Der Benutzer gibt Anmeldeinformationen ein und antwortet, falls gültig, mit einem JWT, in dem gespeichert ist sessionStorage. Jedes Mal, wenn der Benutzer auf den geschützten Routen navigiert, wird der JWT /api/auth/refresh um das Token zu aktualisieren, wenn es noch gültig ist.

Wie auch immer, von der Authentifizierung auf geschützte Routen übergehen, auf denen Daten abgerufen werden, je nachdem, ob der Benutzer dies tut IsAuthenticated laut DRF. Das Problem ist, dass ich Schwierigkeiten habe, herauszufinden, wie ich es bestimmen soll IsAuthenticated in DRF, ohne dass der Benutzer erneut Anmeldeinformationen bereitstellt. Ich sollte jetzt erwähnen, dass ich mit Postman teste.

API-URL:

/api/help/questions

Ich habe die Ansicht als:

class GetQuestionsAPIView(ListAPIView):
queryset = Help.objects.all()
serializer_class = GetQuestionsSerializer
permission_classes = [IsAuthenticated,]

Der Serializer ist:

class GetQuestionsSerializer(ModelSerializer):

class Meta:
model = Help
fields = "__all__"

def validate(self, data):
return data

Ich habe ein gültiges Token von /api/auth/signin/. Ich versuche es an die weiterzugeben /api/help/questions/ Route, um die Liste der Fragen abzurufen.

GET /api/help/questions/ funktioniert nicht, weil es Anmeldeinformationen will. Authentication credentials were not provided.

GET /api/help/questions/ mit Content-type: application/json und "Autorisierungand the token in the header also saysAuthentifizierungsdaten wurden nicht angegeben. "

Dachte vielleicht sollte es sein POST da ich Anmeldeinformationen sende und die Fragen als Serverantwort erwarte, wenn die Authentifizierung gültig ist, aber so ziemlich die gleichen Ergebnisse.

Ich bin offensichtlich nicht der sachkundigste in diesem Bereich, daher wäre jede Hilfe dankbar.

Antworten:

1 für die Antwort № 1

Haben Sie Ihr Token in den Authorization-Header eingefügt? Nachdem Sie sich angemeldet haben, erhalten Sie ein Token, das Sie in die Kopfzeilen der Anforderung Ihrer geschützten URL einfügen sollten:

Authorization: JWT <your_token>

Hier ist ein Beispiel mit curl:

curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/