Ruby on rails 使用facebooker检查FB Connect会话是否过期

Ruby on rails 使用facebooker检查FB Connect会话是否过期,ruby-on-rails,facebook,facebooker,Ruby On Rails,Facebook,Facebooker,如何使用rails facebooker插件检查FB Connect会话是否仍然有效?是否有任何助手或模块可以检查会话?我发现,若我在浏览器中打开两个标签,一个是使用facebook登录,另一个是使用我的网站,然后使用FB Connect登录。当用户试图在我的网站上注销时,facebook将删除这两个cookie,但当用户通过facebook注销时,它将只删除facebook网站上的cookie,因此我网站上的cookie仍然保留,我需要检查cookie是否仍然有效…使用Facebooker,当

如何使用rails facebooker插件检查FB Connect会话是否仍然有效?是否有任何助手或模块可以检查会话?我发现,若我在浏览器中打开两个标签,一个是使用facebook登录,另一个是使用我的网站,然后使用FB Connect登录。当用户试图在我的网站上注销时,facebook将删除这两个cookie,但当用户通过facebook注销时,它将只删除facebook网站上的cookie,因此我网站上的cookie仍然保留,我需要检查cookie是否仍然有效…

使用Facebooker,当您尝试使用该异常时,您将得到一个异常,可以在application.rb中对其进行解救

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

Facebook会话无效时,
fb\u logout\u链接
方法不会重定向。添加一个重定向回调到您的注销路径,它将为您完成这项工作

    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

我还不能推翻这一点,但答案补充了一句话:

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