firefox跟踪保护打破facebook登录

Árp*_*nyi 7 firefox facebook privacy

我在我的网络应用程序中使用简单的Facebook登录菜谱.如果firefox将privacy.trackingprotection.enabled设置设置为true,则会发生以下情况:

  • 弹出facebook登录窗口
  • 如果用户没有登录到facebook,则可以登录
  • 这个过程在这里停止

如果我关闭窗口,我会得到对回调的控制,但登录被认为是不成功的.

如果没有启用跟踪保护,它就会正常工作(即流程不会停止.

有没有办法在"跟踪保护安全"模式下使用Facebook登录?

我的代码的重要部分:

window.fbAsyncInit = function() {
  FB.init({
    appId      : '<my app id>',
    cookie     : true,  // enable cookies to allow the server to access 
                        // the session
    xfbml      : true,  // parse social plugins on this page
    version    : 'v2.2' // use version 2.2
  });
};

(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/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function FaceBook(pageScript) {
this.pageScript = pageScript;
this.doc = document;
this.loggedIn = false;
}


FaceBook.prototype.loginCallBack = function(response) {
    var self = this;
    if (response.status === 'connected') {
        self.loggedIn = response;
        self.pageScript.login_with_facebook(response.authResponse.userID, response.authResponse.accessToken)
    } else {
        self.doc.getElementById('message').innerHTML = 'Facebook login is unsuccessful'
    } 
  }

FaceBook.prototype.fblogin = function() {
    var self = this;
    if (! self.loggedIn ) {
        FB.login(function(response) {
            self.loginCallBack(response);
          });
    }
}
Run Code Online (Sandbox Code Playgroud)