un milion de mulțumiri pentru soluția curat și plin-dovada la o astfel de funcționalitate. frazzled Am fost literalmente merge martor ultimele 2 săptămâni de când am dat peste faptul adevărat să cred că aproape toți utilizatorii NEW-Facebooker, „Facebook Connect logare complet“. Sau poate doar că a fost doar o lipsă de documentare sau un cod de extras nu am fost în stare să găsească până în prezent în documentele de acoperire Facebooker.
Oricum departe de tot ceea ce, se deplasează la soluția pe care am făcut-o atinge ... În urma metodei @James B de mai sus.
Evident , eu sunt presupunând că toate au citit de instalare Facebooker, configurare și utilizare instrucțiuni http://github.com/mmangino/facebooker . De asemenea , am folosit un plug -in „authlogic_facebook_connect“ , pe care o puteți găsi la github.com pagina de kalasjocke / authlogic_facebook_connect.
Acum presupun că ai configurat deja aplicația pentru a lucra cu Facebook Connect folosind fb_login_button sau authlogic_facebook_login_button. Făcând clic pe ea ați vedea un pop-up pentru a vă conecta la contul dvs. atât Facebook și în contul local al aplicației. După autentificare vei fi obtinerea unui facebook_session să se ocupe de salvarea unui utilizator nou în DB (numai în cazul în care doriți să).
În mod implicit, nu ar fi obtinerea ziua de naștere și adresa de email a utilizatorilor în facebook_session ca răspuns la Facebook. Pentru a le obține aveți nevoie de ceva de genul asta în initializare JavaScript în tag-ul corpul paginii rhtml ...
<%= fb_connect_javascript_tag %> <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>
Acum, în cele din urmă ceea ce am făcut pentru deconectat în mod constant atât Facebook și site-ul meu.
În interiorul antetul cererii dumneavoastră sau ori de câte ori datele de conectare, LOGOUT, loggedin ale utilizatorilor nume, etc vor afișa ...
: Șterge%>
Cele două butoane dezautentificarea sunt pentru diferite tipuri de utilizatori .. a. care a înregistrat direct pe site-ul dvs., b. care registrați site-ul dvs. prin Facebook
- Traseu pentru logout_both în routes.rb
map.connect "/ logout_both",: controler => "utilizatori",: action => "logout_both"
Acțiunea pentru logout_both în interiorul users_controller.rb
logout_both def current_user_session.destroy #clear_facebook_session_information bliț [: Notă] "! Logout de succes" = end redirect_to root_path #end metodei logout_both
Trebuie să vă asigurați că nu există filtre definite în controlerul care ar putea limita acțiunea logout_both să fie executat fără o sesiune.
Oh, da, și dacă vă întrebați de ce că „clear_facebook_session_information“ este comentat în acțiune. Atunci nu vă faceți griji, sunteți deja conectat de Facebook înainte de a intra această acțiune, nu mai este nevoie de această linie. Boss folosim „fb_logout_link“, care jurnalele Mai întâi afară și apoi redirecționează la această acțiune nouă.
Ei bine, asta e despre asta. Dacă acest lucru nu o face ........ te murdărești ca eu fac .. sape .. rezolva singur. Facebooker este adâncă, dar are un anumit scop !!!
Din nou, multe mulțumiri pentru mangino & kalasjocke pentru a face facebook conecta aproape nici o dureroasă pentru șine.
O clarificare oameni ... în răspunsul meu de mai sus .. Există un Hick, care este .. După logout, dacă vă reîmprospătați pagina .. ar arăta din nou, v-ați conectat pe site-ul dvs. .. Cu toate acestea sunteți conectat cu succes Facebook. Am fost greșit, PRECIZĂRI BIG ...... ONE Ca o chestiune de fapt, aveți nevoie de aceste două linii în „logout_both“ DUMNEAVOASTRĂ acțiune
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