Aktuelle Python-Lösung für facebook-oauth?

8

Es sieht so aus, als ob ich nicht der einzige war, der versuchte, Javascript für eine Lösung mit OAuth 2.0 serverseitig komplett zu vermeiden. Die Leute konnten alles machen, aber sie konnten sich nicht abmelden:

Facebook Oauth Logout

Oauth Logout mit Facebook Graph API

Facebook OAuth2 Logout entfernt fb_cookie nicht

Die offizielle Dokumentation für OAuth 2.0 mit Facebook lautet:

  

Sie können einen Benutzer aus seiner Facebook-Sitzung abmelden, indem Sie ihn anweisen   die folgende URL:

     

Ссылка

     

YOUR_URL muss eine URL in Ihrer Websitedomain sein, wie in der   Entwickler-App.

Ich wollte alles serverseitig machen und fand heraus, dass der vorgeschlagene Link den Cookie so verlässt, dass der Logout-Link nicht funktioniert: %Code% Es leitet um, aber es protokolliert den Benutzer nicht von meiner Website. Es schien wie ein Heisenbug, da sich das auf mich änderte und es nicht viel Dokumentation gab. Ich schien trotzdem in der Lage zu sein, die Funktionalität mit einem Handler zu erreichen, der den Cookie so manipuliert, dass der Benutzer tatsächlich ausgeloggt wird:

%Vor%

Wenn also der Handler auf / auth / logout gesetzt wird und dieser Link gesetzt wird, loggt er den Benutzer effektiv von meiner Seite ab (aber ich bin mir nicht sicher, ob ich den Benutzer hoffentlich und ungeprüft von Facebook abmelden kann)

Einige andere Teile meines Codes behandeln die OAuth-Token und Cookie-Lookups für die Oauth-Kommunikation:

%Vor%

Ich habe keinen loginhandler gemacht, da login im Grunde der obige Code bei meinem root-Request-Handler ist. Meine Benutzerklasse ist wie folgt:

%Vor%

Ich habe zwei grundlegende Anbieter verspottet Und ich verwende die Variable current_user für den Facebook-Benutzer und die Variable user für den Google-Benutzer und die Variable fbuser für einen Benutzer, der sich anmeldet und daher keine Übereinstimmung mit dem Cookie hat.

    
Niklas Rosencrantz 24.11.2011, 19:50
quelle

1 Antwort

2

Ich glaube, Sie sollten die Authentifizierung auf Ihrer Website für sich selbst verfolgen. Sie müssen den Cookie für Ihre -Seite selbst aufheben.

Höchstens wird das Facebook-Zugriffstoken ungültig, wenn es sich um ein Nur-Sitzungstoken und nicht um ein Offlinezugriffstoken handelt.

    
Anony-Mousse 21.02.2012, 08:49
quelle