所以我有一种奇怪的情况。我正在使用Facebooker插件用于rails,我希望用户能够使用他们的Facebook个人资料登录和注销。但是,一旦用户注销,如果我刷新页面,它会将其重新登录。这仅在用户使用facebook connect登录时。
我认为问题是流氓cookie只是重新实例化会话,因此我最好的猜测是手动销毁cookie但说实话我并不完全确定如何做到这一点。我在点击退出之前和之后打印出我的cookie列表(来自request.cookies)。点击退出后,我仍然有这个cookie挥之不去......但不知道如何删除它。
fbsetting_0b78c8f2c95ce671470bdcb1c19e5070 {“connectState”:1,“oneLineStorySetting”:1,“shortStorySetting”:1,“inFacebook”:false}
在玩了一下之后,那个cookie甚至都没有......但是在刷新页面后我又重新登录了。
我在localhost上做这一切......不确定是否会导致问题。
有什么想法吗?
答案 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)
要删除Cookie,您需要再次使用过期日期设置Cookie。
答案 3 :(得分:0)