2017-04-04 5 views
1

Ich versuche, den Web-Server-Login mit Postman zu testen. Zuerst sende ich eine GET-Anfrage an meine Login-URL, und ich bekomme ein CSRF-Token als Cookie. Dann mache ich eine POST-Anfrage an diese Anmeldeseite mit meinem Benutzernamen, Passwort und CSRF-Token.Senden von CSRF-Tokens über Postman

Mein Problem ist, wenn ich dies in Postman mache, erhalte ich einen 403 verbotenen Fehler, wenn ich versuche, diese POST-Anfrage zur Anmeldung zu machen. Ich kopiere das empfangene CSRF-Token und stelle es als einen der POST-Parameter ein, und ich verwende einen gültigen Benutzernamen und ein gültiges Passwort. Gibt es etwas, das ich hier übersehen habe?

+1

Haben Sie eine Sitzung 'csrfmiddlewaretoken' Cookie gesetzt? –

+0

Nach erfolgreicher Anmeldung müssen Benutzername und Passwort nicht mehr an die Anfrage gesendet werden. Sie benötigen nur das CSRF-Token, da Sie sich bereits authentifiziert haben. – Nizarazo

Antwort

5

Sie müssen es als Header in der Anfrage, nicht im Körper. X-CSRFToken ist der Schlüssel und der Wert ist CSRF-Token aus dem Cookie. Dies funktioniert, wenn Sie ein API-Framework wie Tastypie oder Django Rest Framework verwenden.

Wenn Sie ohne eine API-Schicht authentifizieren, müssen Sie den Cookie tatsächlich anhängen oder einen mit dem CSRF-Token erstellen. This post erklärt es.