Уничтожить печенье в рельсах, facebook подключения, Facebooker плагин

голоса
4

Так что у меня есть своего рода странная ситуация происходит. Я использую плагин Facebooker для рельсов, где я хочу, чтобы пользователи могли войти в системе и выход из системы с их профилями facebook. Однако, как только пользователи выхода из системы, если я обновить страницу, он записывает их обратно. Это только тогда, когда пользователи войти с Facebook Connect.

Я думаю, что проблема в том, что изгоев печенье просто повторно инстанцировании сессию и, таким образом, моя догадка вручную уничтожить печенье, но если честно, я не совсем уверен в том, как это сделать. Я напечатал мой список печенья (от Request.Cookies) как до, так и после того, как я нажимаю выход из системы. После выхода из системы щелкают, я до сих пор это печенье затяжной ... но не знаю, как удалить его.

fbsetting_0b78c8f2c95ce671470bdcb1c19e5070 { connectState: 1, oneLineStorySetting: 1, shortStorySetting: 1, inFacebook ложь}

После того, как играть с ним немного больше, что печенье еще не было ... но на обновления страницы я зарегестрирован.

Я делаю все это на локальном хосте ... не уверен, что должно вызвать проблемы или нет.

Есть идеи?

Задан 21/05/2009 в 19:44
источник пользователем
На других языках...                            


4 ответов

голоса
3

Уничтожение местных печений не достаточно, чтобы прекратить сеанс Facebook Connect. Подключения библиотеки JS воссоздаст уничтожены печенье до тех пор, как вы до сих пор активный сеанс на домен facebook.com - и эти куки являются недоступными для вас.

Все рубленые выходы должны быть обработаны с помощью вызова функции выхода из системы в библиотеке подключения.

например,

<script>$H.fbconnect.logout();</script>
Ответил 21/05/2009 в 21:16
источник пользователем

голоса
0

Чтобы удалить кук, вам необходимо установить кук снова с датой истечения срока действия в прошлом.

Ответил 22/05/2009 в 18:15
источник пользователем

голоса
6

Это то, что я имею в контроллере пользователей

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

и это, как он запускается

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

Это, как я получил его, чтобы удалить куки на локальной стороне.

Примечание: не забудьте добавить маршрут к методу logout_facebook в маршрутах.

Ответил 19/10/2009 в 18:21
источник пользователем

голоса
0

миллиона спасибо за чистое и полное доказательство решения такого измотанным функциональности. Я буквально собирается Blank за последние 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 в теге тела страницы RHTML ...

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

Теперь, наконец, что я сделал для получения вышел из обоих Facebook и мой сайт.

  1. Внутри заголовка приложения или там, где вход, выход, LoggedIn пользователей своего названия и т.д. покажет ...

    : Удалить%>

Две кнопки выхода из системы предназначена для различных видов пользователей .. а. которые зарегистрированы непосредственно на вашем сайте, б. который зарегистрированный на ваш сайт с помощью Facebook

  1. Маршрут для logout_both в routes.rb

map.connect "/ logout_both",: контроллер => "пользователи",: действие => "logout_both"

  1. Действие для logout_both внутри users_controller.rb

    Защиту logout_both current_user_session.destroy #clear_facebook_session_information вспышки [: извещение] "! Выход успешным" = Конец redirect_to root_path #End метода logout_both

  2. Вы должны убедиться, что нет никаких фильтров, определенных в контроллер, который может ограничить logout_both действие, которое будет выполняться без сессии.

  3. Ах да, и если вам интересно, почему это «clear_facebook_session_information» комментируется в действии. Не Тогда не беспокойтесь, вы уже вышли из Facebook перед входом в это действие, эта линия больше не нужна. Boss мы используем «fb_logout_link», который первый журналы вы и затем перенаправляет вас к этому новому действию.

Ну, вот об этом. Если это не делает ........ пачкать руки, как я делаю .. копать .. решить ее самостоятельно. Facebooker глубок, но имеет определенную END !!!

Опять же большое спасибо Mangino & kalasjocke для изготовления фейсбук подключения практически не болезненного для рельсов.


Одно уточнение людей ... в моем ответе выше .. Существует деревенщина, которая .. После выхода из системы, если вы обновите страницу .. он бы снова показать вам войти в систему на вашем сайте .. однако вы успешно вышли из 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
Ответил 24/07/2010 в 11:15
источник пользователем

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