un milione di grazie per la soluzione pulita e la prova completa per una funzionalità come esausto. Sono stato letteralmente andando in bianco sopra ultime 2 settimane da quando ho incontrato il fatto fedele al credo quasi tutti gli utenti NEW-Facebooker, "Facebook Connect logout completamente". O forse solo era solo una mancanza di documentazione o qualche codice brano non è stato in grado di trovare fino ad oggi nei documenti di copertura facebooker.
In ogni caso lontano da tutto ciò che, spostandosi verso la soluzione che mi ha fatto realizzarlo ... Seguendo il metodo @James B di cui sopra.
Ovviamente io parto dal presupposto che tutti avete letto di installazione facebooker, configurazione e utilizzo istruzioni http://github.com/mmangino/facebooker . Ho anche usato un plugin "authlogic_facebook_connect", che potete trovare a github.com pagina del kalasjocke / authlogic_facebook_connect.
Ora presumo che già configurato l'applicazione per lavorare con Facebook Connect utilizzando fb_login_button o authlogic_facebook_login_button. Clic su di esso si vedrebbe un popup qui il log-in sia il tuo account facebook e sul conto locale della vostra applicazione. Una volta che si effettua il login devi essere sempre un facebook_session per gestire il salvataggio di un nuovo utente nel DB (solo se si desidera).
Per impostazione predefinita, non piacerebbe essere sempre il compleanno e l'indirizzo email degli utenti nel facebook_session come risposta da facebook. Per farli avete bisogno di qualcosa di simile nel tuo inizializzazione javascript nel tag body della pagina rhtml ...
<%= fb_connect_javascript_tag %> <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>
Ora finalmente quello che ho fatto per ottenere disconnesso sia Facebook e il mio sito.
All'interno l'intestazione della vostra applicazione o dovunque il login, logout, nome ecc loggedin di utenti mostrerà ...
: Eliminare%>
I due pulsanti sono disconnessione per diversi tipi di utenti .. a. che ha registrato direttamente sul tuo sito, b. che registrati al tuo sito tramite facebook
- Percorso per logout_both in routes.rb
map.connect "/ logout_both",: Controller => "utenti",: action => "logout_both"
L'azione per logout_both all'interno users_controller.rb
def logout_both current_user_session.destroy #clear_facebook_session_information Flash [: Avviso] "! Logout di successo" = fine redirect_to root_path #End metodo logout_both
È necessario assicurarsi che non ci siano filtri definiti nel dispositivo di controllo che potrebbe limitare l'azione logout_both da eseguire, senza una sessione.
Oh sì, e se vi state chiedendo perché che "clear_facebook_session_information" è commentato nell'azione. Quindi non ti preoccupare, hai già effettuato l'accesso da Facebook prima di entrare in questa azione, non è più necessaria questa linea. Boss stiamo usando "fb_logout_link", che accede per la prima fuori e poi reindirizza a questa nuova azione.
Beh, questo è tutto. Se questa non lo fa ........ sporcarsi le mani come sto facendo .. scavare dentro .. risolverli autonomamente. Facebooker è profondo, ma ha un preciso FINE !!!
Anche in questo caso molte grazie a Mangino & kalasjocke per rendere Facebook Connect quasi dolorosa per rotaie.
Un popolo di chiarimento ... nella mia risposta sopra .. C'è un provinciale, che è .. Dopo il logout, se si aggiorna la pagina .. mostrerebbe ancora una volta si effettuato l'accesso sul tuo sito .. tuttavia si è registrato con successo di Facebook. Mi sbagliavo, UN GRANDE CHIARIMENTO ...... È un dato di fatto si ha bisogno queste due linee nel vostro "logout_both" azione
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