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:
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.
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.
Tags und Links python facebook facebook-graph-api google-app-engine facebook-oauth