0

Mit allauth und django-rest-auth, um eine Facebook-Login-API erstellen. Ich habe die beiden Paketdokumentationen verfolgt und ein Beispiel von rest-auth doc verwendet. Ich habe alle Schritte befolgt und kann diese API aus der DRF-browsefähigen API-Ansicht erfolgreich verwenden und die Registrierung erfolgreich durchführen. Wenn ich diese API von irgendwo anders wie Postbote versuche, bittet sie um CSRF-Token.
Ich habe versucht, csrf_exempt Dekorator zu verwenden, aber das scheint nicht auf dieser URL wirksam zu sein.django: rest-auth und allauth für Facebook Registrierung API erfordert CSRF Token

Hier ist meine url config:

url(r'^rest-auth/facebook/$', csrf_exempt(FacebookLogin.as_view()), name='fb_login'), 

Rest der Dinge sind die gleichen, wie sie in der Dokumentation zu django-rest-auth erwähnt.

Ich kann nicht herausfinden, was ich vermisse, oder wo sollte ich nach einer Lösung suchen. Jede Hilfe zur Diagnose des Problems wäre willkommen.

Antwort

0

TL; DR Set authentication_classes =() in Ihrer FacebookLogin Ansicht.

Die Anmelde- und Registeransichten sollten keine Authentifizierungsüberprüfungen haben. Ich nehme an, Sie haben Ihre DRF DEFAULT_AUTHENTICATION_CLASSES Token Auth und Session Auth in der Reihenfolge festgelegt. Wenn Ihre Anfrage verarbeitet wird, findet der Server also kein Authentifizierungs-Token, so dass als Fallback versucht wird, eine Session-Auth durchzuführen, die CSRF erfordert, was wiederum den CSRF-Fehler verursacht.

+0

Dies ist eine recht einfache Lösung. Ich habe es nicht so verstanden, also repariere es etwas länger, indem ich Anfragen von irgendjemandem erlaube. Das ist eigentlich das Gleiche wie du erwähnt hast. –

+0

Ich habe ein anderes Problem. Vielleicht hast du eine Idee. Das Token, das auf diese Weise generiert wird (soziale Anmeldung) wird nicht authentifiziert, wenn ich es in der Kopfzeile sende. Das Token des traditionellen Benutzers authentifiziert sich jedoch, wenn es mit einer Anfrage gesendet wird. Irgendeine Idee was ist falsch? @Sagar –

+0

Ja. Das soziale Login-Token wird nicht für die App-Anmeldung verwendet. Es ist nur, um Ihr App-Benutzerkonto fb Benutzerkonto zuzuordnen. – Sagar

Verwandte Themen