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

时间:2009-09-23 18:14:53

标签: ruby-on-rails facebook facebooker

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

3 个答案:

答案 0 :(得分:3)

使用Facebooker,当您尝试使用异常时会出现异常,可以在application.rb中使用rescue_from

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

答案 1 :(得分:1)

我还不能投票,但答案增加了一句话:

page.redirect_to url

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

答案 2 :(得分:0)

当Facebook会话无效时,fb_logout_link方法不会重定向。将重定向回调添加到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