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.
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
- Trasa dla logout_both w routes.rb
map.connect "/ logout_both": controller => "użytkownicy",: action => "logout_both"
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
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.
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