javascript - 为什么 Facebook JavaScript 身份验证不能在特定计算机上运行?

标签 javascript cookies facebook

我有一个站点使用 Facebook JavaScript API 允许用户通过 Facebook 登录 Ruby on Rails 应用程序。当用户点击登录或注销时,Facebook 代码进行身份验证,然后引发事件并提供带有身份验证参数的 cookie。 cookie 被发送到我的服务器,我用它来进行身份验证。这已经工作了一段时间。

  // Connnect with Facebook.
  $('.fbLogout').click(function() {
      FB.logout();
  });
  $('.fbLogin').click(function () {
      FB.login();
  });
  FB.init({appId: '163691796982300', status: true, cookie: true, xfbml: true});
  FB.Event.subscribe('auth.sessionChange', function() {
      location.reload();
  });

我最近买了一台新电脑,但我的网站无法在这台电脑上运行。 Facebook 登录 UI 似乎可以正常工作,引发了 auth.sessionChange 事件,但似乎从未提供过 cookie,因此页面进入接收身份验证事件、刷新页面的无限循环没有 cookies 和重复。问题似乎出在这台计算机上,并且无论我使用哪种浏览器以及我使用哪种操作系统都会发生。

它适用于:

  • 使用 Internet Explorer 的 friend 的 PC
  • 使用 Firefox 的 friend 的 PC friend 的 PC
  • 在 VirtualBox 的 Ubuntu 10.10 中使用 Firefox 的 friend PC
  • 与新计算机在同一子网中的另一台 PC
  • 从 Ubuntu 10.10 live CD 64 位启动的新计算机

不适用于:

  • 使用 Internet Explorer 的新电脑
  • 使用 Chrome 的新电脑
  • 使用 Firefox 的新电脑
  • 新电脑在 VirtualBox 的 Ubuntu 10.10 中使用 Firefox

这会不会是我的网卡或网络配置引起的?

更新: 它开始工作时就像它失败时一样神秘。

最佳答案

这可能是 the same thing I had to deal with .在您的代码中我看不到异步初始化:

window.fbAsyncInit = function() {
    FB.init({
          appId  : fb_appId,
          status : true, // check login status
          cookie : true, // enable cookies to allow the server to access the session
          xfbml  : true,  // parse XFBML
          oauth : true //enables OAuth 2.0
    });
};

这对于确保在调用 init 方法之前完全加载 Facebook JavaScript SDK 非常重要。因此它可能突然开始工作,因为浏览器已经缓存了 JavaScript 文件。

关于javascript - 为什么 Facebook JavaScript 身份验证不能在特定计算机上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130708/

相关文章:

javascript - JS数组切换推送和拼接

javascript - 在 Raphael 中设置文本背景颜色

javascript - Masonry JS - 如何将第二行中的网格元素居中

javascript - 跨源发布请求

javascript - 如何使用通过 javascript 创建的 Coldfusion 删除 Cookie,反之亦然?

ios - Facebook 视频分享错误 IOS Objective C

ruby-on-rails - 使用从客户端移动应用程序收到的访问 token 访问 FB Graph API

regex - 在 NGINX 反向代理设置中有效忽略 cookie 列表

Javascript html表格隐藏列

iphone - Facebook 与 Phonegap iOS 连接