gpt4 book ai didi

javascript - iOS 修复中 Chrome 中 Facebook OAuth “Unsupported” 的重定向方法的正确位置是什么?

转载 作者:行者123 更新时间:2023-12-03 09:38:35 24 4
gpt4 key购买 nike

我有这一段代码,它解决了当您使用 Parse.com JavaScript 的 Facebook 登录工作流程时,Chrome 移动设备对用户进行 Facebook 身份验证的问题

https://parse.com/docs/js/guide#users-facebook-users

// fix iOS Chrome
if( navigator.userAgent.match('CriOS') )
window.open('https://www.facebook.com/dialog/oauth?client_id='+490518664444605+'&redirect_uri='+ document.location.href +'&scope=email,public_profile', '', null);
else
Parse.FacebookUtils.logIn(null, {
//scope: 'email,public_profile'
});

可以在此处找到此解决方法的来源 https://parse.com/docs/js/guide#users-facebook-users

我无法理解的是我可以在哪里插入此修复现有代码?我已经尝试了代码块中的多个位置,但到目前为止我还无法达到预期的结果

谁能给点建议吗?

现有代码

    //check user session and refresh it
var uri = encodeURI('http://xxxxcom/home.html');
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//user is authorized
document.getElementById('loginBtn').style.display = 'none';
getUserData();

} else {
//user is not authorized
}
});
};

//load the JavaScript SDK
(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/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));


//add event listener to login button
document.getElementById('loginBtn').addEventListener('click', function() {
//do the login
var uri = encodeURI('http://xxxxx.com/home.html');
Parse.FacebookUtils.logIn(null, {
success: function(user) {
if (!user.existed()) {
window.location.href=uri;
} else {
window.location = encodeURI("https://www.facebook.com/dialog/oauth?client_id=xxxxxxx&redirect_uri="+uri+"&response_type=token");


}
},
error: function(user, error) {

}


});



}, false);

最佳答案

我在 google chrome 中找到了 ios facebook 网站登录的解决方案。实际上,问题在于 ios 中的 google chrome,当我们单击 facebook 登录按钮时,它会在 ios chrome 中为 window.open 提供内部 null 。
有两种解决方案-
首先-要么检查它是 ios(chrios) 中的 chrome,然后生成自定义登录屏幕(我们仍然没有机会纠正它)。
第二-我用过的。是使用 facebook 登录反手创建一个 api 点击将填充 facebook 屏幕,然后当登录完成时,它将重定向到您的服务器,从那里您将使用 facebook 数据重定向到您的网站页面。
另一个好处是,您可以为同一个网站所有者创建2个网站(您不能在facebook开发者帐户中设置两个网站url)。这样您可以使用相同的facebook appid创建多个网站facebook登录.

关于javascript - iOS 修复中 Chrome 中 Facebook OAuth “Unsupported” 的重定向方法的正确位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253779/

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