2009-03-03 7 views
4

Wie kann der Benutzer am besten angemeldet bleiben, wenn Cookies wie "Drittanbieter" deaktiviert sind? Ich habe derzeit eine Facebook Connect-App (nur in PHP), die gut funktioniert, wenn ich das in Firefox eingecheckt habe, aber auf meine Anmeldeseite umleitet, wenn sie nicht markiert ist. Selbst Facebooks eigene Beispielanwendung (therunaround) hat das gleiche Problem mit diesem unkontrolliert, also frage ich mich, ob es keine Möglichkeit gibt, das Problem zu umgehen.Facebook Connect und Third-Party-Cookies?

Edit:

@ codege3k

ein Bündel von P3P-Header versucht. Bisher keine Würfel. Ich habe eine Login-Seite, die zu meinem Index umleitet, wenn der Benutzer "verbindet" ... die erste Ladung, ich bin in der Lage, die Benutzer-ID von get_loggedin_user() zu bekommen, aber wenn ich aktualisieren, gibt diese Funktion null zurück. Die Cookies existieren, und wenn ich auf die Anmeldeseite zurückkehre und erneut auf "Verbinden" klicke, werde ich nicht aufgefordert, mich anzumelden, also weiß ich, dass es teilweise funktioniert. Mit "Third-Party-Cookies" in Firefox aktiviert, funktioniert es wie ein Zauber.

Edit:

Was ist der beste Weg, Facebook im Rahmen der Anmeldung eines Benutzers eine Verbindung zu handhaben dann, wenn Cookies von Drittanbietern ist nicht allgemein unterstützt? Sollte ich nur das anfängliche Login verwenden, das funktioniert, und ein lokales Cookie für meine eigene Website setzen und dieses verwenden, anstatt jedes Mal den Facebook-Status zu überprüfen?

Antwort

3

Ok, die Förderung der Sitzung scheint zu funktionieren.

$fbUserId = self::$facebook->get_loggedin_user(); 
if ($fbUserId) 
{ 
    self::$facebook->promote_session(); 
    return $fbUserId; 
} 

Edit:

Also das wird die Sitzung bei jeder Anfrage, aber im Wesentlichen, müssen Cookies von Drittanbietern aktiviert sein, damit Facebook Connect wie erwartet funktionieren. Aus ihrer docs:

Der Browser des Benutzers muss für zu akzeptieren 3rd Party Cookies gesetzt wird es zwischen Klicks in Verbindung zu bleiben.

Quelle: http://wiki.developers.facebook.com/index.php/Logging_In_And_Connecting

2

Ich hatte ein ähnliches Problem mit Cookies von Drittanbietern. Überprüfen Sie diese question und sehen, ob es löst

Es kann durch Hinzufügen von P3P-Header gelöst werden.

0

So funktioniert P3P Arbeit zu beheben dies für Browser, die nicht 3rd-Party-Cookies akzeptieren Sie? Ich habe einen FB-Bug unter http://bugs.developers.facebook.com/show_bug.cgi?id=5009 kommentiert.

+0

Ich habe nicht viel Unterschied mit den P3P-Headern gesehen. In Firefox mit diesen "Drittanbieter-Cookies" nicht ausgewählt, funktioniert es nicht, egal was. Sie können den Anfangswert von Facebook erhalten und bei Bedarf einen lokalen Cookie setzen. – typeoneerror