Ødelegge cookies i skinnene, Facebook Connect, Face plugin

stemmer
4

Så jeg har liksom en rar situasjon skjer. Jeg bruker Face plugin for rails der jeg vil at brukere skal kunne logge deg inn og utlogging med sine Facebook-profiler. Men når brukere logger ut, hvis jeg oppdatere siden, logger det dem tilbake i. Dette er bare når brukere logger inn med Facebook Connect.

Jeg tror problemet er at en rogue cookie er bare re-forekomster av økten, og dermed min beste gjetning er å ødelegge cookies manuelt, men for å være ærlig er jeg ikke helt sikker på hvordan du gjør dette. Jeg printet ut min cookie liste (fra Request.Cookies) både før og etter jeg klikker utlogging. Etter utlogging klikkes, jeg har fortsatt denne cookie dvelende ... men vet ikke hvordan å slette den.

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

Etter å ha spilt rundt med det litt mer, er at cookie ikke engang der ... men ved å oppdatere siden jeg logget inn igjen.

Jeg gjør alt dette på localhost ... ikke sikker på om det bør føre til et problem eller ikke.

Noen ideer?

Publisert på 21/05/2009 klokken 18:44
kilden bruker
På andre språk...                            


4 svar

stemmer
3

Ødelegge lokale cookies er ikke nok til å si opp en Facebook Connect økt. Den kobler JS biblioteket vil gjenskape ødelagt cookies så lenge du fortsatt har en aktiv økt på facebook.com-domene - og disse cookies er utilgjengelige for deg.

Alle logg-outs må håndteres ved å kalle utlogging funksjonen i connect biblioteket.

f.eks,

<script>$H.fbconnect.logout();</script>
Svarte 21/05/2009 kl. 20:16
kilden bruker

stemmer
0

For å slette en cookie, må du sette cookie igjen med en utløpsdato i fortiden.

Svarte 22/05/2009 kl. 17:15
kilden bruker

stemmer
6

Dette er hva jeg har i brukere controller

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

og dette er hvordan den er utløst

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

Dette er hvordan jeg fikk det til å fjerne cookies på den lokale siden.

Merk: Ikke glem å legge en rute til logout_facebook metoden i rutene.

Svarte 19/10/2009 kl. 17:21
kilden bruker

stemmer
0

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.

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

  1. Rute for logout_both i routes.rb

map.connect "/ logout_both",: kontroller => "brukere",: action => "logout_both"

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

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

  3. Å 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
Svarte 24/07/2010 kl. 10:15
kilden bruker

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