gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 04:42:59 25 4
gpt4 key购买 nike

我有一个站点使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com