在rails,facebook connect,facebooker插件中销毁cookie

时间:2009-05-21 18:44:19

标签: ruby-on-rails ruby facebook cookies session

所以我有一种奇怪的情况。我正在使用Facebooker插件用于rails,我希望用户能够使用他们的Facebook个人资料登录和注销。但是,一旦用户注销,如果我刷新页面,它会将其重新登录。这仅在用户使用facebook connect登录时。

我认为问题是流氓cookie只是重新实例化会话,因此我最好的猜测是手动销毁cookie但说实话我并不完全确定如何做到这一点。我在点击退出之前和之后打印出我的cookie列表(来自request.cookies)。点击退出后,我仍然有这个cookie挥之不去......但不知道如何删除它。

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

在玩了一下之后,那个cookie甚至都没有......但是在刷新页面后我又重新登录了。

我在localhost上做这一切......不确定是否会导致问题。

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

这就是我在用户控制器中所拥有的

  def logout_facebook
    clear_facebook_session_information
    redirect_to root_url
  end

这就是它的触发方式

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

这就是我如何删除本地的cookie。

注意:不要忘记在路线中添加路由到logout_facebook方法。

答案 1 :(得分:3)

销毁本地Cookie不足以终止Facebook Connect会话。只要您在facebook.com域上仍有活动会话,connect JS库将重新创建已销毁的cookie - 而且您无法访问这些cookie。

必须通过调用连接库中的注销功能来处理所有注销。

例如,

<script>$H.fbconnect.logout();</script>

答案 2 :(得分:0)

答案 3 :(得分:0)

要删除Cookie,您需要再次使用过期日期设置Cookie。