en million takk for den rene og fulle sikker løsning på en slik uryddig funksjonalitet. Jeg har bokstavelig talt går tom i løpet av siste 2 uker siden jeg kom over det faktum tro mot tror jeg nesten alle NEW-Face brukere, "Facebook Connect logge helt ut". Eller kanskje bare det var bare en manglende dokumentasjon eller noen kode utdrag Jeg var ikke i stand til å finne til dato i Face dekke docs.
Allikevel bort fra alt det, flytter til løsningen som gjorde meg å oppnå det ... Etter å @James B metoden ovenfor.
Tydeligvis Jeg antar dere alle har lest Face installasjon, konfigurasjon og bruksinstruksjoner http://github.com/mmangino/facebooker . Jeg har også brukt en plugin "authlogic_facebook_connect" som du finner på github.com side av kalasjocke / authlogic_facebook_connect.
Nå antar jeg at du allerede har konfigurert programmet til å fungere med Facebook Connect ved hjelp fb_login_button eller authlogic_facebook_login_button. Klikke på det vil du se en popup for å logge deg inn i både Facebook-kontoen din og inn i lokal konto i appen. Når du har logget inn du ville være å få en facebook_session å håndtere lagre en ny bruker i DB (bare hvis du ønsker det).
Som standard du ikke ville være å få bursdag og e-postadresse for brukere i facebook_session som respons fra facebook. For å få dem du trenger noe som dette i din initialisering javascript i kroppen lappen på rhtml siden ...
<%= fb_connect_javascript_tag %> <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>
Nå endelig hva jeg gjorde for å bli logget ut av både Facebook og nettstedet mitt.
Inne i overskriften på søknaden din eller hvor Logg på, Logg, vil logg brukere navn etc vise ...
Delete%>
De to utlogging knappene er for ulike typer brukere .. en. som er registrert direkte på nettstedet ditt, f. som registerd til nettstedet ditt via facebook
- Rute for logout_both i routes.rb
map.connect "/ logout_both",: kontroller => "brukere",: action => "logout_both"
Handlingen for logout_both inne users_controller.rb
def logout_both current_user_session.destroy #clear_facebook_session_information flash [: varsel] "! Logg vellykket" = redirect_to root_path ende #END av metode logout_both
Du må sørge for at det finnes ingen filtre som er definert i kontrolleren som kan begrense logout_both handling som skal utføres uten en økt.
Å ja, og hvis du lurer på hvorfor det "clear_facebook_session_information" er kommentert i aksjon. Så ikke fortvil, du er allerede logget ut av facebook før vi går denne handlingen, er denne linjen ikke lenger nødvendig. Boss vi bruker "fb_logout_link" som først logger deg ut og deretter sender deg til denne nye handlingen.
Vel, det er omtrent det. Hvis dette ikke gjøre det ........ få hendene skitne som jeg gjør .. grave i .. løse det selv. Face er dyp, men har en klar END !!!
Igjen mange takk til Mangino & kalasjocke for å lage Facebook Connect nesten ingen smertefullt for rails.
En avklaring folk ... i mitt svar over .. Det er en hick, som er .. Etter utlogging, hvis du oppdaterer siden .. det vil igjen vise deg logge inn på din side .. men du er logget ut av Facebook. Jeg tok feil, en stor AVKLARING ...... Som et spørsmål om faktum du trenger disse to linjene i "logout_both" action
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