Distruge cookie-urile în sine, facebook conecta, plugin Facebooker

voturi
4

Deci, am un fel de o situație ciudată întâmplă. Sunt folosind plugin-ul Facebooker pentru șine în cazul în care doresc ca utilizatorii să fie în măsură să vă conectați delogari cu profilurile lor de pe Facebook. Cu toate acestea, odată ce utilizatorii logout, dacă e necesară încărcarea paginii, le înregistrează din nou. Aceasta este doar atunci când utilizatorii conectați cu Facebook conecta.

Cred că problema este că un cookie necinstiți este doar re-instantierea sesiune și, astfel, cel mai bine ghici mea este de a distruge manual, cookie-uri, dar să fiu sincer eu nu sunt sigur de modul de a face acest lucru. Am tipărit lista mea cookie-ul (de la request.cookies), atât înainte, cât și după ce faceți clic pe logout. După logout se face clic, încă mai am acest lungite cookie ... dar nu știu cum să-l ștergeți.

fbsetting_0b78c8f2c95ce671470bdcb1c19e5070 { connectState: 1, oneLineStorySetting: 1, shortStorySetting: 1, inFacebook: fals}

După ce a jucat în jurul cu un pic mai mult, că cookie-ul nu este chiar și acolo ... dar pe actualizând pagina Sunt autentificat din nou.

Fac asta tot pe localhost ... nu sunt sigur dacă acest lucru ar trebui să cauzeze o problemă sau nu.

Vreo idee?

Întrebat 21/05/2009 la 19:44
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
3

Distrugerea cookie-urile locale nu este suficient pentru a termina o sesiune Facebook Connect. Connect JS biblioteca va recrea cookie-uri distruse, atâta timp cât aveți încă o sesiune activă pe domeniul facebook.com - și aceste cookie-uri sunt inaccesibile pentru tine.

Toate jurnal-out trebuie să fie manipulate prin apelarea funcției de deconectare în biblioteca de conectare.

de exemplu,

<script>$H.fbconnect.logout();</script>
Publicat 21/05/2009 la 21:16
sursa de către utilizator

voturi
0

Pentru a șterge un cookie, trebuie să setați cookie-ul din nou, cu o dată de expirare în trecut.

Publicat 22/05/2009 la 18:15
sursa de către utilizator

voturi
6

Aceasta este ceea ce am în controler de utilizatori

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

iar acest lucru este modul în care este declanșată

<%= fb_logout_link("Logout out", "#{root_url}users/logout_facebook")%>

Acesta este modul în care am luat-o pentru a elimina cookie-urile de pe partea locală.

Notă: nu uitați să adăugați un traseu la metoda logout_facebook în traseele dumneavoastră.

Publicat 19/10/2009 la 18:21
sursa de către utilizator

voturi
0

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.

  1. Î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

  1. Traseu pentru logout_both în routes.rb

map.connect "/ logout_both",: controler => "utilizatori",: action => "logout_both"

  1. 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

  2. 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.

  3. 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
Publicat 24/07/2010 la 11:15
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more