Facebook上的空白屏幕登录边缘浏览器

Ami*_*dor 6 javascript facebook login microsoft-edge

tl;博士:登录Facebook边缘后,我得到一个空白的弹出屏幕,但它没有返回我的网站.

你好.我在Chrome和Firefox以及Internet Explorer 11下有一个有效的Facebook登录流程,但是当我在Windows 10上使用Edge浏览器尝试相同的流程时,它失败了.我正在使用JavaScript.我试图寻找答案,但没有找到相关的东西.

怎么了

在Edge上,我单击我的登录按钮,出现弹出窗口,然后输入我的凭据.在Facebook弹出窗口上点击"登录"后,它会重定向到空白页面.该空白弹出页面的URL有很多查询参数,其中一个是我提供给我网站的重定向地址,但弹出窗口仍然空白,我面对可怕的白色死亡屏幕.如果我去facebook.com,我可以看到我已登录,因此登录确实在幕后工作.

我进一步尝试了从他们的开发站点获取的官方Facebook JS示例.这效果!

我已经检查了其他网站上的其他一些Facebook登录信息及其流程.一些非常奇怪的事情正在发生,我有点想法如何调试这个.

以下是一些查询参数(为简洁起见转换为JSON),其中所有内容似乎都是私有隐藏的:

我是登录页面时弹出的URL.有可怕的错误,但我认为它们只与登录失败时有关.

{
  "version": "42#cb",
  "domain": "XXXXXXXXXXXXXXXX",
  "origin": "http%3A%2F%2FXXXXXXXXXXXXXXXXXXXX",
  "relation": "opener",
  "frame": "XXXXXXXXXX",
  "error": "access_denied",
  "error_code": "200",
  "error_description": "Permissions+error",
  "error_reason": "user_denied",
  "e2e": "%7B%7D",
  "display": "popup"
}
Run Code Online (Sandbox Code Playgroud)

这是我得到空白页面时的URL.同样,所有这些流程都适用于Windows 10上的Chrome和IE 11,但不适用于Edge(尚未测试Firefox).

{
  "version": "42#cb",
  "domain": [
    "XXXXXXXXXXXXXXX",
    "XXXXXXXXXXXXXXXXXXXXXXXXXX"
  ],
  "origin": [
    "http%3A%2F%2FXXXXXXXXXXXXXXXXXXXXXXX%2Ff3ab15014b2d67e",
    "1"
  ],
  "relation": "opener",
  "frame": "XXXXXXXXXXXXXX",
  "display": "popup",
  "scope": "email,public_profile,user_friends,user_events,user_location,rsvp_event",
  "response_type": "token,signed_request",
  "client_id": "XXXXXXXXXXXXXXXXXXXXXX",
  "ret": "login",
  "sdk": "joey",
  "ext": "XXXXXXXXXXXX",
  "hash": "XXXXXXXXXXXXX"
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?有任何想法吗?
谢谢.

Sha*_*ter 3

Internet 选项可信站点。 通过将我的网站和 Facebook 通配符条目添加到我的受信任网站,我能够解决这个随机问题。

通过访问:

  1. 控制面板
  2. 互联网选项
  3. 单击安全选项卡
  4. 单击“受信任的站点”选项卡
  5. 单击“站点”按钮并按照下图所示的格式添加站点。

JSSKD v2.5 登录按钮和窗口

Windows 10 Internet 选项和受信任站点

  • 那很有意思。我会尝试看看它是否有帮助,但这不是一个好的解决方案,因为您不能指望用户自定义他们的浏览器只是为了访问和使用您的网站。 (3认同)