身份验证后如何关闭Facebook弹出窗口

How to close Facebook popup after authentication?

本文关键字:窗口 Facebook 何关闭 身份验证      更新时间:2023-09-26

我有一个带有ominiauth-facebook gem 的 Rails 3.2.7 应用程序,我已经在对用户进行身份验证,但是当回调被激活时,也就是当用户被发送回我的 Web 应用程序时,我试图以这种方式关闭弹出窗口:

if (window.opener !== null) {
  window.opener.location = "/";
  window.opener.close();
}

我试过了

if (window.opener !== null) {
  window.opener.location = "/";
  window.close();
}

两者都表现得不好。它们的问题在于,例如,如果我通过Gmail向您发送指向我的应用程序的链接,则在另一个窗口/选项卡中打开我的应用程序后,您的Gmail窗口将关闭。

我真的很想在我的应用程序中使身份验证"弹出式",我很确定这是可能的,因为我在其他网站上看到过这种情况。

所以我想要一个不会惹恼用户关闭他的打开器窗口的解决方案,并且还想在身份验证完成后关闭FB弹出窗口。

感谢您给我的任何帮助,谢谢。

只需使用 JS SDK 中的FB.login,它就会为您处理这一切。

https://developers.facebook.com/docs/reference/javascript/FB.login/