【问题标题】:Check FB Connect session expire using facebooker使用 facebooker 检查 FB Connect 会话是否过期
【发布时间】:2009-09-23 18:14:52
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails facebook facebooker


    【解决方案1】:

    使用 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
    

    【讨论】:

      【解决方案2】:

      我还不能投票,但是添加了一行的答案:

      page.redirect_to url
      

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

      【讨论】:

        【解决方案3】:

        当 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
        

        【讨论】:

          猜你喜欢
          • 2011-01-03
          • 1970-01-01
          • 1970-01-01
          • 2018-04-10
          • 1970-01-01
          • 1970-01-01
          • 2011-08-01
          • 2011-01-05
          • 2017-11-27
          相关资源
          最近更新 更多