Вход в Facebook - проблема с перенаправлением после подтверждения разрешения на получение информации о пользователе
Мне нужна помощь для последнего шага моей функции входа в Facebook.
Проблема в том, что когда новый пользователь входит в систему в первый раз, появляется всплывающее окно под названием 'www.facebook.com/v11.0/dialog/oauth', которое просит нового пользователя подтвердить, что он разрешает моей странице доступ к его информации.
Проблема заключается в том, что после того, как пользователь принимает условия и подтверждает их, нажимая кнопку 'continue as name', вместо того, чтобы быть переведенным на мою домашнюю страницу, как я хотел бы, пользователи остаются на моей странице входа. Затем им нужно второй раз нажать на кнопку 'Connect by Facebook', которая теперь способна выполнить свою работу и перенаправить моих пользователей на нужную страницу.
В основном я ищу способ указать Facebook login, чтобы он запрашивал перенаправление изнутри всплывающего окна 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().