gpt4 book ai didi

ruby-on-rails-3 - Facebook 身份验证对话框(JS SDK)返回空白屏幕

转载 作者:行者123 更新时间:2023-12-01 16:43:41 24 4
gpt4 key购买 nike

我正在设置一个 Rails 应用程序并尝试通过 Facebook JS SDK 实现登录。已经缺少 Omniauth...:(

无论如何,会弹出对话框,用户提供登录信息,但随后重定向到 https://www.facebook.com/connect/window_comm.php?_id=some-string&_relation =opener&auth_token=some-big-string,空白屏幕。弹出窗口不会关闭。

如果我手动关闭它,然后刷新我的页面,我可以看到登录发生了。

奇怪的是,在第一次登录时,当请求权限时,一切都按预期进行,弹出窗口在授予或拒绝权限后关闭。

在 Chrome、FF、Safari 和 Opera 上测试。行为一致。

如果我在 Chrome 上调试空白重定向页面,则会出现两个错误:

1) 不安全的 JavaScript 尝试从 URL https://something 的框架访问 URL http://something 的框架。域、协议(protocol)和端口必须匹配。(注意 http x https...)

2) window_comm.php:7Uncaught TypeError: 无法调用未定义的方法“_recv”

相关代码如下:

<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'my-app-id',
status : true,
channelURL : 'http://localhost:3000/channel.html',
cookie : true,
oauth : true,
xfbml : true
});

FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/pt_BR/all.js"
fjs.parentNode.insertBefore(js, fjs);
}
(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-login-button" data-show-faces="true" data-width="400" data-max-rows="1" perms="offline_access"></div>

非常感谢您对此的任何启发...让我发疯! =(

编辑:这可能是 Facebook 上的一个错误吗,因为它从 http 重定向到 https?

最佳答案

这仅回答问题 1)。 Facebook 新要求:-

  • 切换到Oauth2.0来获取token_access
  • 使用 SSL(即:https://)进行身份验证(因此会出现跨域问题)

此外,我通常会从下面的代码开始,以确定登录过程中可能的用户状态。这意味着在测试阶段点击任何东西。

FB.Event.subscribe('auth.authResponseChange', function(response) {
alert('The status of the session is: ' + response.status);
});

关于ruby-on-rails-3 - Facebook 身份验证对话框(JS SDK)返回空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103359/

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