Zniszczyć cookies w szynach, facebook connect, wtyczki Facebooker

głosy
4

Więc mam rodzaju dziwne sytuacja dzieje. Używam plugin Facebooker szyn, gdzie chcę, aby użytkownicy mogli się zalogować i wylogować się ze swoich profilach na Facebooku. Jednak, gdy użytkownicy wylogowania, gdybym odśwież stronę, rejestruje je z powrotem. To jest tylko wtedy, gdy użytkownik loguje się z Facebook połączyć.

Myślę, że problemem jest to, że nieuczciwe cookie jest po prostu ponownie uruchamianiu sesji, a więc mój najlepszy przypuszczenie jest ręcznie zniszczyć ciasteczka, ale szczerze mówiąc nie jestem do końca pewien, jak to zrobić. I wydrukować moją listę plików cookie (od Request.Cookies) zarówno przed jak i po kliknięciu wylogowania. Po kliknięciu wylogowania, nadal mam ten plik cookie przewlekły ... ale nie wiem jak go usunąć.

fbsetting_0b78c8f2c95ce671470bdcb1c19e5070 { connectState 1 oneLineStorySetting 1 shortStorySetting 1 inFacebook false}

Po zabawy z nim trochę więcej, że cookies nie jest nawet tam ... ale po odświeżeniu strony jestem zalogowany ponownie.

Robię to wszystko na localhost ... nie jestem pewien, czy to powinno spowodować problem, czy nie.

Jakieś pomysły?

Utwórz 21/05/2009 o 19:44
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
3

Niszcząc lokalne ciasteczka nie wystarczy, aby zakończyć sesję Facebook Connect. Połącz bibliotekę JS będzie odtworzyć zniszczony ciasteczka tak długo, jak masz jeszcze aktywnej sesji w domenie facebook.com - a te ciasteczka są niedostępne dla Ciebie.

Wszystkie log-out musi być obsługiwane przez wywołanie funkcji connect wylogowania w bibliotece.

na przykład,

<script>$H.fbconnect.logout();</script>
Odpowiedział 21/05/2009 o 21:16
źródło użytkownik

głosy
0

Aby usunąć pliki cookie, trzeba ponownie ustawić ciasteczko z datą wygaśnięcia w przeszłości.

Odpowiedział 22/05/2009 o 18:15
źródło użytkownik

głosy
6

To jest to, co mam w kontrolerze użytkowników

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

i tak to jest wyzwalany

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

To jak mam go usunąć ciasteczka na stronie lokalnej.

Uwaga: nie zapomnij dodać trasę do sposobu logout_facebook w swoich tras.

Odpowiedział 19/10/2009 o 18:21
źródło użytkownik

głosy
0

milion dzięki za czystym i pełnym dowodem rozwiązania takiego frazzled funkcjonalności. Byłem dosłownie dzieje Blank ciągu ostatnich 2 tygodni, ponieważ natknąłem faktu wiernym wierzę niemal wszystkich użytkowników NEW-Facebooker „Facebook Connect zalogowaniu się całkowicie”. A może po prostu była to tylko brak dokumentacji lub jakiś fragment kodu nie udało mi się znaleźć do tej pory w docs okładka Facebooker.

W każdym razie z dala od tego wszystkiego, przenosząc się do roztworu, który sprawił, że osiągnięcie go ... Po metody @James B powyżej.


Oczywiście zakładając, że mam wszystko przeczytałeś instalacji Facebooker, konfiguracji i użytkowania instrukcjami http://github.com/mmangino/facebooker . Ja również używali wtyczki „authlogic_facebook_connect”, który można znaleźć na stronie kalasjocke github.com / authlogic_facebook_connect.

Teraz zakładam, że już skonfigurowany do pracy z aplikacji Facebook Connect za pomocą fb_login_button lub authlogic_facebook_login_button. Kliknięcie go chcesz zobaczyć okienko do logowania się do swojego konta facebook zarówno i do lokalnego konta swojej aplikacji. Po zalogowaniu się, że będziesz coraz facebook_session obsługiwać zapisywania nowego użytkownika w DB (tylko jeśli chcesz).

Domyślnie nie chcesz być coraz urodziny i adres e-mail użytkowników w facebook_session jako odpowiedź z facebook. Aby je zdobyć trzeba coś takiego w swojej inicjalizacji JavaScript w tagu ciała strony rhtml ...

<%= fb_connect_javascript_tag %>   <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>

Teraz wreszcie to, co zrobiłem dla mnie wylogowuje zarówno Facebook i mojej stronie.

  1. Wewnątrz nagłówku aplikacji lub gdziekolwiek logowania, wylogowania, loggedin użytkowników Nazwa etc pokaże ...

    : Usuwanie%>

Dwa przyciski Wyloguj są dla różnego rodzaju użytkowników .. a. który zarejestrował bezpośrednio na swojej stronie, b. którzy przez zarejestrowanych na swoim miejscu za pomocą Facebooka

  1. Trasa dla logout_both w routes.rb

map.connect "/ logout_both": controller => "użytkownicy",: action => "logout_both"

  1. Akcja dla logout_both wewnątrz users_controller.rb

    def logout_both current_user_session.destroy #clear_facebook_session_information błysku [: notice] "! Wyloguj sukces" = Koniec redirect_to root_path #End z metodą logout_both

  2. Musisz upewnić się, że nie istnieją żadne filtry zdefiniowane w kontrolerze, który mógłby ograniczyć działanie logout_both być wykonywane bez sesji.

  3. Aha i jeśli zastanawiasz się, dlaczego tak „clear_facebook_session_information” jest skomentował w akcji. Więc nie martw się, jesteś już zalogowany na Facebooku przed wejściem tej czynności, nie jest już potrzebna ta linia. Boss używamy „fb_logout_link”, który najpierw loguje się, a następnie przekierowuje do nowej akcji.

Dobrze, że to już wszystko. Jeśli tego nie robi ........ ubrudzić sobie ręce jak robie .. kopać .. rozwiązać samodzielnie. Facebooker jest głęboka, ale ma określoną KONIEC !!!

Znowu wiele dzięki Mangino & kalasjocke dokonywania Facebook Connect prawie nie bolesne dla szyn.


Jeden uściślenie ludzie ... w mojej odpowiedzi powyżej .. Jest wieśniakiem, który jest .. Po wylogowaniu, jeśli odśwież stronę .. to znowu pokazać zalogowany na swoim miejscu .. jednak jesteś pomyślnie wylogowany Facebooka. Myliłem się, jeden wielki WYJAŚNIENIE ...... Jak faktem Trzeba te dwie linie w „logout_both” działanie

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
Odpowiedział 24/07/2010 o 11:15
źródło użytkownik

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