2009-09-23 77 views
3

如何使用rails facebooker插件检查FB Connect会话是否仍然有效?有没有可以检查会话的助手或模块?我发现如果我在浏览器中打开2个选项卡,一个用facebook登录,另一个用我的站点登录并使用FB Connect登录。当用户尝试注销我的网站时,Facebook会擦除这两个cookie,但当用户通过Facebook注销时,它只会在Facebook站点中删除cookie,因此我网站中的cookie仍然留下,我需要检查cookie是否仍然有效或不...检查FB Connect会话是否过期使用facebooker

回答

3

使用Facebooker,你会得到一个例外,当您尝试使用异常,可以在application.rb中被rescue_from'd

rescue_from Facebooker::Session::SessionExpired, :with => :facebook_session_expired 

def facebook_session_expired 
    clear_fb_cookies! 
    clear_facebook_session_information 
    reset_session # remove your cookies! 
    flash[:error] = "Your facebook session has expired." 
    redirect_to root_url 
end 
0

fb_logout_link方法不重定向时Facebook会话无效。添加一个重定向回调到你的logout_path,它会为你完成这项工作。

def fb_logout_link(text,url,*args) 
     js = update_page do |page| 
     page.call "FB.Connect.logoutAndRedirect",url 
     # When session is valid, this call is meaningless, since we already redirect 
     # When session is invalid, it will log the user out of the system. 
     page.redirect_to url # You can use any *string* based path here 
     end 
     link_to_function text, js, *args 
    end 
1

我不能给予好评的事情还在,但增加了行了答案:

page.redirect_to url 

是正确的。如果Mike正在阅读,我建议将其添加到Facebooker。