миллион, спасибо за чистое и полное решение для такой измотанной функциональности. За последние 2 недели я буквально стал пустым с тех пор, как натолкнулся на факт, который, как я полагаю, почти для всех пользователей NEW-facebooker, «выход из Facebook полностью завершен». Или, может быть, это просто отсутствие документации или выдержка из кода, которую я не смог найти до сих пор в документах на обложке facebooker.
Как бы то ни было, переходя к решению, которое помогло мне достичь его ... Следуя описанному выше методу @James B.
Очевидно, я предполагаю, что вы все прочитали инструкции по установке, настройке и использованию facebooker http://github.com/mmangino/facebooker.
Я также использовал плагин «authlogic_facebook_connect», который вы можете найти на странице github.com в kalasjocke / authlogic_facebook_connect.
Теперь я предполагаю, что вы уже настроили ваше приложение для работы с Facebook connect, используя fb_login_button или authlogic_facebook_login_button. Нажав на нее, вы увидите всплывающее окно для входа в свою учетную запись Facebook и локальную учетную запись вашего приложения. После входа вы получите facebook_session для сохранения нового пользователя в вашей БД (только если вы этого хотите).
По умолчанию вы не будете получать день рождения и адрес электронной почты пользователей в facebook_session как ответ от facebook. Чтобы получить их, вам нужно что-то вроде этого в javascript инициализации в теге body страницы rhtml ...
<%= fb_connect_javascript_tag %> <%=
init_fb_connect "XFBML",{
:app_settings=>" {
permsToRequestOnConnect :
'email,user_birthday' }"} %>
<%= authlogic_facebook_login_button %>
Теперь, наконец, то, что я сделал для выхода из Facebook и моего сайта.
Внутри заголовка вашего приложения или там, где будут отображаться ЛОГИН, ЛОГОТИП, имя пользователя и т. Д. ...
:удалять
%>
Две кнопки выхода из системы предназначены для разных пользователей .. a. кто зарегистрирован прямо на вашем сайте, б. кто зарегистрировался на вашем сайте через фейсбук
- Маршрут для logout_both в маршрутах. Rb
map.connect "/ logout_both",
: Контроллер => "пользователи",
: Действие => "logout_both"
Действие для logout_both внутри users_controller.rb
def logout_both
current_user_session.destroy
#clear_facebook_session_information
flash [: note] = "Выйти успешно!"
redirect_to root_path end # Конец метода logout_both
Необходимо убедиться, что в контроллере не определены фильтры, которые могли бы ограничить выполнение действия logout_both без сеанса.
О да, и если вам интересно, почему эта «clear_facebook_session_information» комментируется в действии. Тогда не волнуйтесь, вы уже вышли из Facebook перед тем, как войти в это действие, эта строка больше не нужна. Босс, мы используем "fb_logout_link", который сначала выходит из системы, а затем перенаправляет вас на это новое действие.
Ну, вот и все. Если этого не происходит ........ пачкайте руки, как я делаю .. копайтесь ... решайте сами. Facebooker глубокий, но имеет определенный КОНЕЦ !!!
Еще раз большое спасибо mangino & kalasjocke за то, что он сделал подключение к Facebook практически безболезненным для рельсов.
Одно уточнение, люди ... в моем ответе выше .. Есть хик, который ... После выхода из системы, если вы обновите страницу ... это снова покажет, что вы вошли на свой сайт ... как бы вы ни были успешно вышел из Facebook.
Я был не прав, ОДНА БОЛЬШАЯ РАЗЪЯСНЕНИЕ ...... На самом деле вам НУЖНЫ ЭТИ ДВЕ ЛИНИИ В ВАШЕМ "logout_both" действии
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