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.
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
- Route für logout_both in routes.rb
map.connect "/ logout_both": controller => "Benutzer",: action => "logout_both"
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
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.
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