Facebook 登录 - 确认用户信息权限后重定向问题
Facebook Login - Problem redirecting after confirming permission for user info
我的 Facebook 登录功能的最后一步需要帮助。
问题是当新用户第一次登录时,会出现一个名为 'www.facebook.com/v11.0/dialog/oauth' 的弹出窗口,提示新用户确认他们允许我的页面访问他们的信息。
问题是,一旦用户接受条款并通过单击 'continue as name' 按钮进行确认,用户并没有像我希望的那样被引导到我的主页,而是保留在我的登录页面上.然后,他们需要再次单击 'Connect by Facebook' 按钮,该按钮现在可以完成其工作并将我的用户重定向到正确的页面。
基本上我正在寻找一种方法来告诉 Facebook 登录提示从 oauth 弹出窗口内部重定向并跳过双击的需要。
我已经在 JavaScript 中设置了访问权限,我的代码如下所示:
$(document).ready(function(){
$('.login-main').on("click", ".facebook_login_class", function(){
console.log('FACEBOOK LOGIN OPTION SELECTED');
FB.getLoginStatus(function(res){
if(res.status == "connected" ){
console.log('Connected on Facebook');
FB.api('/me?fields=email,name,first_name,last_name', function(fbUser) {
$.ajax({
url:'facebook_login_ajax/',
method:'GET',
data:{
email:fbUser.email,
code:fbUser.id,
},
success:function(response){
if (response.Success == true){
window.location.href = '/myhomepage/';
}
}
});
});
}else{
console.log('NOT CONNECTED!');
FB.login();
}
FB.getLoginStatus(function(response) {
});
});
});
});
我认为魔术发生在 FB.login() 期间;我职能的一部分,因为这是新用户在授权我使用他们的数据之前最终到达的地方。我仍在努力提高我的 JavaScript 技能,所以我觉得我缺少一些非常简单的东西。
你们有解决这个问题的想法吗?
非常感谢
哦,原来解决方案从一开始就非常简单。我只需要修改 FB.login();像这样的部分:
FB.login(function(response) {
if (response.status == 'connected'){
FB.api('/me?fields=email,name,first_name,last_name', function(fbUser) {
$.ajax({
url:'facebook_login_ajax/',
method:'GET',
data:{
email:fbUser.email,
code:fbUser.id,
},
success:function(response){
if (response.Success == true){
window.location.href = '/myhomepage/';
}
}
});
});
}
}, {scope: 'email'});
}
这与我之前的功能基本相同,只是现在它遵循 FB.login() 功能。
我的 Facebook 登录功能的最后一步需要帮助。
问题是当新用户第一次登录时,会出现一个名为 'www.facebook.com/v11.0/dialog/oauth' 的弹出窗口,提示新用户确认他们允许我的页面访问他们的信息。
问题是,一旦用户接受条款并通过单击 'continue as name' 按钮进行确认,用户并没有像我希望的那样被引导到我的主页,而是保留在我的登录页面上.然后,他们需要再次单击 'Connect by Facebook' 按钮,该按钮现在可以完成其工作并将我的用户重定向到正确的页面。
基本上我正在寻找一种方法来告诉 Facebook 登录提示从 oauth 弹出窗口内部重定向并跳过双击的需要。
我已经在 JavaScript 中设置了访问权限,我的代码如下所示:
$(document).ready(function(){
$('.login-main').on("click", ".facebook_login_class", function(){
console.log('FACEBOOK LOGIN OPTION SELECTED');
FB.getLoginStatus(function(res){
if(res.status == "connected" ){
console.log('Connected on Facebook');
FB.api('/me?fields=email,name,first_name,last_name', function(fbUser) {
$.ajax({
url:'facebook_login_ajax/',
method:'GET',
data:{
email:fbUser.email,
code:fbUser.id,
},
success:function(response){
if (response.Success == true){
window.location.href = '/myhomepage/';
}
}
});
});
}else{
console.log('NOT CONNECTED!');
FB.login();
}
FB.getLoginStatus(function(response) {
});
});
});
});
我认为魔术发生在 FB.login() 期间;我职能的一部分,因为这是新用户在授权我使用他们的数据之前最终到达的地方。我仍在努力提高我的 JavaScript 技能,所以我觉得我缺少一些非常简单的东西。
你们有解决这个问题的想法吗?
非常感谢
哦,原来解决方案从一开始就非常简单。我只需要修改 FB.login();像这样的部分:
FB.login(function(response) {
if (response.status == 'connected'){
FB.api('/me?fields=email,name,first_name,last_name', function(fbUser) {
$.ajax({
url:'facebook_login_ajax/',
method:'GET',
data:{
email:fbUser.email,
code:fbUser.id,
},
success:function(response){
if (response.Success == true){
window.location.href = '/myhomepage/';
}
}
});
});
}
}, {scope: 'email'});
}
这与我之前的功能基本相同,只是现在它遵循 FB.login() 功能。