【问题标题】:#_=_ added to URL by facebook#_=_ 由 facebook 添加到 URL
【发布时间】:2011-12-02 21:08:06
【问题描述】:

通过 Facebook 连接到我的 Rails 应用程序后,我已将 #_=_ 添加到我的 URL。

我尝试指定 FB 指定的 redirect_uri,但没有成功。
删除符号的 Javascript 解决方法无济于事。我尝试了一切都没有结果。
关于如何解决这个问题的任何指示?

我的设置:

gem 'rails', '3.0.11'
gem "devise", '1.5.2'
gem "omniauth", '1.0.1'
gem 'omniauth-facebook', '1.0.0rc2'

module Facebook
 CONFIG = YAML.load_file(Rails.root.join("config/facebook.yml"))[Rails.env]
 FB_APP_ID = CONFIG['app_id']
 FB_APP_SECRET = CONFIG['secret_key']
end

Rails.application.config.middleware.use OmniAuth::Builder do    
 provider :facebook, Facebook::FB_APP_ID, Facebook::FB_APP_SECRET,
 :scope => 'offline_access, email, publish_stream',
 :display => 'touch'
end

【问题讨论】:

    标签: ruby-on-rails-3 facebook-graph-api omniauth


    【解决方案1】:

    #_=_ 片段是 Facebook 有意添加的,如Change in Sessions Redirect Behavior 中所述。据称,在您的请求中显式设置 redirect_uri 可以解决此问题,但显然存在一个错误,即使指定了 redirect_uri,也会保留不需要的片段。

    假设此错误未解决,解决方法可能是使用 Javascript 替换哈希位置:

    window.location.hash = ""
    

    这不会替换实际的哈希字符,但会删除它后面的所有内容。

    【讨论】:

    • 感谢 zeantsoi。我一直在等待这个但修复但现在我看到随机效果。我在 chrome 中得到了#_=_,但在 safari 中没有,尽管在我也在 safari 中得到它之前。我现在要使用 js 解决方法。
    • @tomek — 似乎最好的修复将在 Facebook 解决该错误时出现,这显然在他们的待办事项清单上。如果现在解释和 JS 解决方法就足够了,您介意投票还是接受答案?
    • 这删除了# 之后的所有字符,但用户会看到页面的最底部。有什么解决方法吗?
    • 我没有遇到 jQuery 的这种行为。您使用的是框架还是普通的 Javascript?您可能会尝试的一件事是在window.location.hash = "" 之后添加return false。这可以防止内页跳转,但我无法验证这是否适用于您的情况,因为我没有遇到所描述的行为。
    【解决方案2】:

    也许这是一个更清晰的答案,也是我用来解决此问题的答案。

    您的 URL 中可能有 # 个锚点,如果您在 facebook 登录后最终被转发到网站上的任何页面,则尤其如此。所以删除 # 中的所有内容可能会导致问题。

    此解决方案只会从 URL 中删除 fubar facebook #= 字符串,并保持哈希的其他部分不变。

    将此 JS 添加到您的标头或全局 JS 包含中。

    (function() {
        "use strict";
        if (window.location && window.location.hash) {
            if (window.location.hash === '#_=_') {
                window.location.hash = '';
                return;
            }
            var facebookFubarLoginHash = RegExp('_\=_', 'g');
            window.location.hash = window.location.hash.replace(facebookFubarLoginHash,     '');
        }
    }()); 
    

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      相关资源
      最近更新 更多