4

Ich habe die Dokumentation hier gelesen: django-rest-framework-social-oauth2, aber alles ist sehr unklar für mich (Es ist mein erstes Mal mit diesem).Wie benutze ich das django-rest-framework-social-oauth2 mit facebook Oauth2?

und am Ende zeigt es einige Einstellungen wie Sie die Einstellungen für facebook Oauth2 verwenden. Und es gibt diese Informationen an die Dokumentation:

Sie können diese Einstellungen testen, indem Sie den folgenden Befehl ausführen:

curl -X POST -d “grant_type=convert_token&client_id=<client_id>&client_secret=<client_secret>&backend=facebook&token=<facebook_token>” http://localhost:8000/auth/convert-token 

Diese Anfrage gibt die „access_token“, die Sie auf allen HTTP-Anfragen mit DRF verwenden sollten . Was passiert hier ist, dass wir konvertieren ein Drittanbieter-Zugriffs-Token (user_access_token) in einem Access-Token für die Verwendung mit Ihrem API und seinen Clients ("access_token"). Sie sollten dieses Token für jede weitere Kommunikation zwischen Ihres Systems/Ihrer Anwendung und Ihrer API verwenden, um jede Anfrage zu authentifizieren, und vermeiden, jedes Mal mit dem FB zu authentifizieren.

Bedeutet es, dass ich mit diesem Endpunkt der Lage sein wird, irgendwie „überschreiben“ ein sing up Verfahren einen Benutzer auf meine Anwendung mit dem gleichen user_access_token Erstellen es auf Facebook hat?

Wenn das stimmt, nach meinem Verständnis. Nachdem ich die FB.getLoginStatus Antwort bekommen habe, werde ich in der Lage sein, meine eigenen API Endpunkte aufzurufen, die auf den angemeldeten Benutzer mit seinem facebook user_access_token verweisen (das ist auch das gleiche auf meinem System).

Ich denke, ich müsste auch Social Accounts Token zu Benutzermodellen hinzufügen?

Bin ich richtig?

Antwort

1

Ich könnte es mit einem Test-Token von Facebook testen und es verhält sich wie erwartet, wie ich in meiner Frage geschrieben habe.

+1

Wie haben Sie das Zugriffs-Token erhalten? Ich nehme an, cleint id und client secret ist was wir bekommen von fb nach der Registrierung unserer App. Bitte helfen Sie – ajaysingh

+0

@AjaySingh Sie können eine Javascript-Anfrage mit der [Facebook Dokumentation] (https://developers.facebook.com/docs/facebook-login/web) und es gibt Ihnen ein Access_Token, um Ihr Backend zu testen. Und ja, die "client_secret" und die "client_id" sind diejenigen, die Sie nach der Registrierung Ihrer App erhalten. –

+0

Ich wollte django-rest-framework-social-oauth2 dafür verwenden, aber es wird weiterhin 404, da mein Projekt keine Route zur URL hat "http: // localhost: 8000/auth/convert-token" Do Ich muss etwas zu meinem urls.py hinzufügen? – ajaysingh