$ facebook-getLogoutUrl (); Der Link protokolliert den Nutzer nicht von Facebook

8

Meine aktuelle User Story ist, dass user1 bei meiner Website und Facebook angemeldet ist (diese Konten sind verbunden usw.).

Benutzer1 meldet sich von meiner Website ab, aber nicht von Facebook.

Nachdem sich user2 bei seinem Konto angemeldet hat, wird die linke Sitzung von user1 mit der Interaktion von user2 mit meiner Seite und dem, für den sie posten, verschraubt.

Um dies zu beheben, habe ich überprüft, ob der eingeloggte Benutzer tatsächlich das Facebook-Konto besitzt (dies würde dazu führen, dass Facebook abmeldet usw.) und es zeigt einen Link, der dem Benutzer erlauben sollte, sich einzuloggen aus ...

Nach dem Klicken auf den Link gehen sie zu Facebook und kehren auf die Seite zurück. Aber wenn Sie einen neuen Tab öffnen und zu Facebook gehen, ist User1 immer noch angemeldet.

Wie kann ich diesen Link zur Arbeit bekommen? Was ist los? Ist das ein Fehler mit der API oder was? ...

Edit: Ich habe mit value user ids loading und mit gültigen access tokens weitergetestet, aber ich muss noch den Logout Link zum funktionieren bringen.

    
Brandon Martinez 06.10.2011, 21:14
quelle

3 Antworten

5

Ein bisschen spät, aber hier geht mein Beitrag:

Verwenden Sie die Parameter beim Generieren der Abmelde-URL, dort wird auf eine Seite umgeleitet, auf der Sie die Sitzung mithilfe der Facebook-API-Funktion zerstören.

Hier ein Beispiel:

%Vor%

Im page4logout können Sie das facebook-Objekt instanzieren und folgendes ausführen:

%Vor%

Danach können Sie eine Umleitung machen.

    
Luis Fernando Villegas 22.11.2012 20:26
quelle
4
___ qstnhdr ___ $ facebook-getLogoutUrl (); Der Link protokolliert den Nutzer nicht von Facebook ___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ tag123session ___ Eine Sitzung bezieht sich auf alle Anforderungen, die ein einzelner Client an einen Server stellt. Eine Sitzung ist spezifisch für den Benutzer und für jeden Benutzer wird eine neue Sitzung erstellt, um alle Anfragen von diesem Benutzer zu verfolgen. ___ tag123facebook ___ Mit der Facebook Platform können Entwickler ihre Apps direkt in den sozialen Netzwerkdienst von Facebook integrieren. Verwenden Sie dieses Tag für Fragen, die bei der Entwicklung von FOR Facebook auftreten können. Dieses Tag ist NICHT für Support-Fragen zur Nutzung der Facebook-Website oder der offiziellen Facebook-App gedacht. Es ist auch nicht für Fragen der "Ich möchte ein Feature ähnlich wie Facebook hat" implementieren. ___ answer13519567 ___

Ein bisschen spät, aber hier geht mein Beitrag:

Verwenden Sie die Parameter beim Generieren der Abmelde-URL, dort wird auf eine Seite umgeleitet, auf der Sie die Sitzung mithilfe der Facebook-API-Funktion zerstören.

Hier ein Beispiel:

%Vor%

Im page4logout können Sie das facebook-Objekt instanzieren und folgendes ausführen:

%Vor%

Danach können Sie eine Umleitung machen.

    
___ qstntxt ___

Meine aktuelle User Story ist, dass user1 bei meiner Website und Facebook angemeldet ist (diese Konten sind verbunden usw.).

Benutzer1 meldet sich von meiner Website ab, aber nicht von Facebook.

Nachdem sich user2 bei seinem Konto angemeldet hat, wird die linke Sitzung von user1 mit der Interaktion von user2 mit meiner Seite und dem, für den sie posten, verschraubt.

Um dies zu beheben, habe ich überprüft, ob der eingeloggte Benutzer tatsächlich das Facebook-Konto besitzt (dies würde dazu führen, dass Facebook abmeldet usw.) und es zeigt einen Link, der dem Benutzer erlauben sollte, sich einzuloggen aus ...

Nach dem Klicken auf den Link gehen sie zu Facebook und kehren auf die Seite zurück. Aber wenn Sie einen neuen Tab öffnen und zu Facebook gehen, ist User1 immer noch angemeldet.

Wie kann ich diesen Link zur Arbeit bekommen? Was ist los? Ist das ein Fehler mit der API oder was? ...

Edit: Ich habe mit value user ids loading und mit gültigen access tokens weitergetestet, aber ich muss noch den Logout Link zum funktionieren bringen.

    
___ answer10853784 ___

Eine Möglichkeit, dies zu überprüfen, besteht darin, das PHP SDK und das JavaScript SDK zusammen zu verwenden.

Wenn der Benutzer Ihre Site besucht, rufen Sie FB.getLoginStatus () auf und überprüfen Sie, ob %code% mit dem übereinstimmt, was das PHP SDK in %code% zurückgibt (Sie können dies über einen AJAX-Aufruf tun, wenn es hilft).

Sie wissen, dass, wenn die Benutzer-ID nicht übereinstimmt, etwas falsch ist. Der Aufruf von $ facebook- & gt; getLogoutUrl () sollte den Benutzer sowohl von Ihrer Website als auch von Facebook aus protokollieren. Wenn dies nicht der Fall ist, versuchen Sie% code% in Ihrem Code zu verwenden, um die Sitzungen zu löschen. Leiten Sie dann den Benutzer zurück zu $ ​​facebook- & gt; getLoginUrl () und lassen Sie ihn erneut anmelden. Dadurch wird die falsche Übereinstimmung in der Benutzer-ID korrigiert und Sie können den Vorgang wiederholen, wenn Sie auf Ihre Website zurückkehren.

Ich habe gesehen, dass dies bei anderen Apps passiert ist, was mich zu der Annahme verleitet, dass dies ein Facebook-Problem ist. Das JavaScript SDK scheint nicht zu prüfen, ob das Cookie noch gültig ist (falls es bereits existiert).

    
___ tag123logout ___ Der Prozess zum Beenden einer authentifizierten Sitzung. ___ tag123facebookauthentication ___ Die Facebook-Authentifizierung ist eine beliebte Anmeldemethode für viele Websites, die Facebook-Anmeldeinformationen verwenden. ___ answer 10836568 ___

Löschen Sie den Facebook-Cookie und die Sitzung manuell. Hier ist meine Lösung, wie ich das Problem vor einiger Zeit gelöst habe, es ist ein Bug von Facebook:

%Vor%

$ this- & gt; getAppID ist deine Facebook App ID, sollte klar sein; o)

    
___
Tobias Bambullis 31.05.2012 15:27
quelle
0

Eine Möglichkeit, dies zu überprüfen, besteht darin, das PHP SDK und das JavaScript SDK zusammen zu verwenden.

Wenn der Benutzer Ihre Site besucht, rufen Sie FB.getLoginStatus () auf und überprüfen Sie, ob authResponse.userID mit dem übereinstimmt, was das PHP SDK in $facebook->getUser(); zurückgibt (Sie können dies über einen AJAX-Aufruf tun, wenn es hilft).

Sie wissen, dass, wenn die Benutzer-ID nicht übereinstimmt, etwas falsch ist. Der Aufruf von $ facebook- & gt; getLogoutUrl () sollte den Benutzer sowohl von Ihrer Website als auch von Facebook aus protokollieren. Wenn dies nicht der Fall ist, versuchen Sie% code% in Ihrem Code zu verwenden, um die Sitzungen zu löschen. Leiten Sie dann den Benutzer zurück zu $ ​​facebook- & gt; getLoginUrl () und lassen Sie ihn erneut anmelden. Dadurch wird die falsche Übereinstimmung in der Benutzer-ID korrigiert und Sie können den Vorgang wiederholen, wenn Sie auf Ihre Website zurückkehren.

Ich habe gesehen, dass dies bei anderen Apps passiert ist, was mich zu der Annahme verleitet, dass dies ein Facebook-Problem ist. Das JavaScript SDK scheint nicht zu prüfen, ob das Cookie noch gültig ist (falls es bereits existiert).

    
Niraj Shah 01.06.2012 16:08
quelle