Zerstören Sie Cookies in Schienen, facebook connect, Facebooker Plugin

stimmen
4

Also ich habe irgendwie eine seltsame Situation geht. Ich bin mit dem Facebooker Plugin für Schienen, wo ich Nutzer wollen mit ihren Facebook-Profile können Anmeldung und Abmeldung. Sobald jedoch Benutzer abmelden, wenn ich die Seite aktualisieren, meldet er sie in zurück. Dies ist nur, wenn Benutzer melden Sie sich mit Facebook verbinden.

Ich denke, das Problem ist, dass ein vermeintliches Cookie wird nur die Sitzung erneut Instanziieren und damit meine beste Vermutung ist, um manuell die Cookies zu zerstören, aber um ehrlich zu sein ich bin mir nicht ganz sicher, wie dies zu tun. Ich druckte meine Cookie-Liste aus (von Request.Cookies) sowohl vor als auch nach dem ich logout klicken. Nach der Abmeldung geklickt wird, habe ich noch dieses Cookie Verweilen ... aber nicht wissen, wie es zu löschen.

fbsetting_0b78c8f2c95ce671470bdcb1c19e5070 { connectState: 1 oneLineStorySetting: 1 shortStorySetting: 1 inFacebook: false}

Nachdem sie mit ihm spielen um ein wenig mehr, ist, dass Cookies nicht einmal dort ... aber die Seite auf erfrischende ich wieder angemeldet bin.

Ich tue dies alles auf localhost ... nicht sicher, ob das sollte ein Problem oder nicht verursachen.

Irgendwelche Ideen?

Veröffentlicht am 21/05/2009 um 19:44
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
3

Destroying lokale Cookies ist nicht genug, um eine Facebook-Connect-Sitzung zu beenden. Die Connect-JS-Bibliothek wird neu erstellt Cookies so lange zerstört, wie Sie immer noch eine aktive Sitzung auf der facebook.com Domain haben - und diese Cookies sind unzugänglich für Sie.

Alle Log-outs müssen durch den Aufruf der Abmeldefunktion in der Verbindungsbibliothek behandelt werden.

z.B,

<script>$H.fbconnect.logout();</script>
Beantwortet am 21/05/2009 um 21:16
quelle vom benutzer

stimmen
0

Um ein Cookie zu löschen, müssen Sie den Cookie setzen wieder mit einem Ablaufdatum in der Vergangenheit.

Beantwortet am 22/05/2009 um 18:15
quelle vom benutzer

stimmen
6

Dies ist, was ich in Benutzer-Controller haben

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

und dies ist, wie es ausgelöst wird,

<%= fb_logout_link("Logout out", "#{root_url}users/logout_facebook")%>

Dies ist, wie ich es bekam die Cookies auf der lokalen Seite zu entfernen.

Hinweis: vergessen Sie nicht, eine Route zu der logout_facebook Methode in Ihren Routen hinzuzufügen.

Beantwortet am 19/10/2009 um 18:21
quelle vom benutzer

stimmen
0

eine Million Dank für die saubere und vollständige sichere Lösung für ein solches frazzled Funktionalität. Ich habe gehen buchstäblich Blank über letzten 2 Wochen her, seit ich über die Tatsache wahr ich fast alle NEW-Facebooker-Nutzer glauben, „logging vollständig facebook connect out“. Oder vielleicht nur war es nur ein Mangel an Dokumentation oder einiger Codeauszug war ich nicht in der Lage bis heute in Facebooker Abdeckung docs zu finden.

Auf jeden Fall weg von all dem, Umzug in die Lösung, die mich gemacht erreichen ... zu Verfahren @James B oben folgen.


Offensichtlich Ich gehe davon aus Sie alle Facebooker Installation, Konfiguration und Gebrauchsanweisungen gelesen haben http://github.com/mmangino/facebooker . Ich habe auch ein Plugin „authlogic_facebook_connect“ verwendet , die Sie bei github.com Seite von kalasjocke / authlogic_facebook_connect finden.

Jetzt nehme ich Sie bereits Ihre Anwendung konfiguriert mit Facebook arbeiten verbinden, indem fb_login_button oder authlogic_facebook_login_button verwenden. Ein Klick darauf würde ein Popup sehen Sie sich in beide Ihrem Facebook-Konto anmelden und in das lokale Konto Ihrer App. Sobald Sie sich angemeldet Sie würden ein facebook_session in Ihrer DB einen neuen Benutzer Speicher zu verarbeiten bekommen (nur, wenn Sie möchten).

Standardmäßig würden Sie nicht Geburtstag und E-Mail-Adresse der Nutzer in der facebook_session als Antwort von Facebook bekommen. Um sie zu erhalten Sie so etwas wie dies in Ihrer Initialisierung Javascript in dem Body-Tag der rhtml Seite müssen ...

<%= fb_connect_javascript_tag %>   <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>

Nun endlich, was ich tat für aus beiden Facebook und meiner Seite angemeldet zu werden.

  1. Im Inneren der Kopfzeile Ihrer Anwendung oder wo auch immer das Login, Logout, Benutzer eingeloggt hat den Namen usw. wird angezeigt ...

    : Löschen%>

Die beiden Abmelde Tasten sind für verschiedene Arten von Benutzern .. ein. die registrierten direkt auf Ihrer Website, b. die registerd über Facebook auf Ihre Website

  1. Route für logout_both in routes.rb

map.connect "/ logout_both": controller => "Benutzer",: action => "logout_both"

  1. Die Aktion für logout_both innerhalb users_controller.rb

    [: Notice] def current_user_session.destroy #clear_facebook_session_information Flash logout_both! "Logout erfolgreich" = redirect_to root_path #End Ende des Verfahrens logout_both

  2. Sie müssen sicherstellen, dass es keine Filter in der Steuerung definiert, die logout_both Aktion ohne eine Sitzung ausgeführt werden beschränken könnte.

  3. Ach ja, und wenn Sie sich fragen, warum die „clear_facebook_session_information“ in der Aktion kommentiert. Dann mach dir keine Sorgen, du bist schon aus Facebook angemeldet, bevor diese Aktion Eingabe wird diese Zeile nicht mehr benötigt. Boss wir verwenden „fb_logout_link“, die zuerst meldet Sie dann leitet Sie auf diese neue Aktion.

Nun, das ist es. Wenn dies nicht funktioniert, tun ........ sich die Hände schmutzig, wie ich tue .. graben .. lösen it yourself. Facebooker ist tief, aber hat eine bestimmte END !!!

Nochmals vielen Dank Mangino & kalasjocke für Facebook zu machen verbinden fast keine schmerzhaft für Schienen.


Eine Klärung Menschen ... in meiner Antwort oben .. Es ist ein hick, das ist .. Nach der Abmeldung, wenn Sie die Seite aktualisieren .. es würde wieder zeigen Sie auf Ihrer Website angemeldet .. aber sie ist erfolgreich abgemeldet von Facebook. Ich war falsch, ONE BIG KLARSTELLUNG ...... Als der Tat Sie diese beiden Zeilen in der „logout_both“ brauchen Aktion

def logout_both <br/>
      current_user_session.destroy<br/>
      clear_facebook_session_information  #MANDATORY TO COMPLETELY CLEAR COOKIES<br/>
      reset_session  # TO BE 100% sure you can use it optionally<br/>
      flash[:notice] = "Logout successful!"<br/>
      redirect_to root_path   <br/>
end
Beantwortet am 24/07/2010 um 11:15
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more