een miljoen bedankt voor het schoon en vol-proof oplossing om een dergelijke frazzled functionaliteit. Ik heb letterlijk gaan Blank ten opzichte van vorig 2 weken geleden dat ik over het feit trouw aan geloof ik bijna alle NEW-Facebooker gebruikers kwam, "Facebook Connect volledig uit te loggen". Of misschien was het gewoon een gebrek aan documentatie of een code uittreksel Ik was niet in staat om uit te vinden tot datum in Facebooker dekking docs.
Hoe dan ook uit de buurt van dat alles, verhuizen naar de oplossing die me bereiken ... Is het volgende aan @James B-methode hierboven.
Uiteraard Ik ga ervan uit u allen Facebooker installatie, configuratie en gebruiksinstructies hebt gelezen http://github.com/mmangino/facebooker . Ik heb ook een plugin "authlogic_facebook_connect", die u kunt vinden op github.com pagina van kalasjocke / authlogic_facebook_connect gebruikt.
Nu neem ik aan u uw aanvraag al geconfigureerd om te werken met Facebook Connect met behulp fb_login_button of authlogic_facebook_login_button. Door erop te klikken zou je een pop-up te zien om jezelf te loggen in zowel uw Facebook-account en naar de lokale account van uw app. Zodra je inlogt zou je het krijgen van een facebook_session te hanteren het opslaan van een nieuwe gebruiker in uw DB (alleen als je wilt).
Standaard zou je niet krijgen verjaardag en e-mailadres van gebruikers in de facebook_session als reactie van facebook. Om hen krijg je zoiets als dit nodig heeft in uw initialisatie javascript in de body-tag van de rhtml pagina ...
<%= fb_connect_javascript_tag %> <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>
Nu eindelijk wat ik deed voor steeds afgemeld bij zowel Facebook als mijn site.
Binnen in de header van uw aanvraag of waar de login, logout, loggedin gebruikers de naam etc wordt weergegeven ...
: Delete%>
De twee logout knoppen zijn voor verschillende soorten gebruikers .. a. die direct geregistreerd op uw site, b. die naar uw site registerd via facebook
- Route voor logout_both in routes.rb
map.connect "/ logout_both": controller => "gebruikers",: action => "logout_both"
De actie voor logout_both binnen users_controller.rb
def logout_both current_user_session.destroy #clear_facebook_session_information flash [: Disclaimer]! "Logout successful" = redirect_to root_path einde #end methode logout_both
Je moet ervoor zorgen dat er geen filters zijn gedefinieerd in de controller, die zou kunnen worden beperkt logout_both actie die moet worden uitgevoerd zonder een sessie.
Oh ja en als je je afvraagt waarom dat "clear_facebook_session_information" wordt toegelicht in de actie. Dan maak je geen zorgen, je bent al afgemeld bij facebook alvorens deze actie, wordt deze lijn niet meer nodig. Boss we gebruiken "fb_logout_link" die voor het eerst meldt u zich af en vervolgens je wordt omgeleid naar deze nieuwe actie.
Nou, dat is het zo'n beetje. Als dit het niet doet ........ krijg je handen vuil zoals ik doe .. graven .. lossen het zelf. Facebooker is diep, maar heeft een definitief einde !!!
Nogmaals veel dank aan Mangino & kalasjocke voor het maken van Facebook Connect bijna geen pijnlijk voor rails.
Een verduidelijking mensen ... in mijn antwoord hierboven .. Er is een hick, dat is .. Na logout, als je de pagina vernieuwen .. het zou niet opnieuw tonen u ingelogd op uw site .. maar je bent succesvol uitgelogd van Facebook. Ik had het mis, ÉÉN GROTE UITLEG ...... Als een zaak van feite heb je nodig deze twee lijnen in uw "logout_both" actie
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