FB.login()在Android Chrome上"不安全的JavaScript尝试启动框架导航"但在桌面Chrome上失败

Ago*_*gop 8 javascript facebook google-chrome cross-domain facebook-javascript-sdk

我在这里有一个Facebook JS SDK登录流程:https://web.triller.co/#/user/login

当用户点击Facebook按钮时,执行以下功能:

loginFacebook()
{
    const fbPromise = new Promise((resolve, reject) => {
        FB.login(resp => {
            if (resp.authResponse)
            {
                resolve(resp.authResponse.accessToken);
            }
            else
            {
                console.log(resp);
                reject(new Error('Facebook login canceled or failed.'));
            }
        });
    });

    return fbPromise
        .then(accessToken => api.postJson('user/login_facebook', { accessToken }))
        .then(this._handleLogin.bind(this));
}
Run Code Online (Sandbox Code Playgroud)

基本上,它调用FB.login(),并期望收到有效的resp.authResponse.不幸的是,即使在Facebook弹出/标签上成功进行身份验证之后,它也没有.相反,我们{ authResponse: undefined, status: undefined }从浏览器收到以下错误:

不安全的JavaScript尝试启动与URL"框架导航https://m.facebook.com/v2.8/dialog/oauth?foo=bar从URL框架' https://web.triller.co/#/ user/login?_k = cmzdb6 '.尝试导航的帧既不是与目标相同的原点,也不是目标的父或开启者.

在Facebook弹出/选项卡中进行身份验证后会立即发生错误,并且只会在Android Chrome上发生.桌面Chrome(在Mac上)不会显示相同的错误.iOS上的Safari也不会显示错误.

对于发生了什么的任何想法?为什么Android Chrome和桌面Chrome之间存在差异?它可能与URL中的哈希有关吗?

Sre*_*A R 1

在桌面中,此问题可能是由 XFINITY Constant Guard Protection Suite Chrome 扩展引起的。禁用它,问题就会解决。

在 Android 中,尝试删除 XFINITY 或类似的安全扩展或应用程序(诺顿安全防病毒软件)。

https://developer.salesforce.com/forums/?id=906F00000008qKnIAI