CSRF-Fehler bei Verwendung von rest_framework.authtoken.views.obtain._auth_token

8

Ich rufe obtain.auth_token von URLs wie folgt auf

%Vor%

Ich komme zurück

%Vor%

Ich frage mich, warum dies geschah, da ich unter dem Eindruck stand, dass der Django-Ruhe-Rahmen normalerweise CSRF ausgenommen sei.

Danke

    
user155813 15.06.2013, 01:09
quelle

4 Antworten

2

Diese Ansicht verwendet einen POST. DRF erfordert CSRF immer für sitzungsauthentifizierte POSTs.

Sensible Anfragen wie das Erhalten eines Authentifizierungs-Tokens sollten aus genau diesem Grund POST verwenden.

    
paulmelnikow 20.01.2014 01:52
quelle
1

Ich hatte genau das gleiche Problem. Überprüfen Sie, ob Sie sich vom Browser abgemeldet haben.

    
Ryu_hayabusa 25.03.2014 10:53
quelle
1

Ich bin eben auch reingerannt. Hinzufügen einer Antwort für den Fall, dass dies für andere unklar war.

  1. Stellen Sie sicher, dass Sie nicht in einem Kontext anfordern, in dem Sie bereits angemeldet sind, z. aus dem Browser (melden Sie sich ab, versuchen Sie es im Inkognito-Modus oder löschen Sie Ihre Cookies, wenn Sie es sind).
  2. Stellen Sie sicher, dass Sie den Endpunkt api-token korrekt verwenden. Ich versuchte zunächst, Basic Auth zu verwenden, vorausgesetzt, diese Token-generierende Ansicht wurde geschützt, aber DRF erwartet tatsächlich Formulardaten , die stattdessen die Felder username und password enthalten.

Hier ist ein Arbeitsbeispiel mit Anfragen :

%Vor%     
Joe 27.01.2015 22:40
quelle
0

Um mit der Dokumentation Ссылка Sie müssen Ajax-CSRF implementieren, wie in. erklärt wird Ссылка

... wenn Sie angularjs verwenden, können Sie Django csrf token + Angularjs überprüfen

    
Javier Gutierrez 06.04.2015 03:36
quelle

Tags und Links