Necesito ayuda para el último paso de mi función de inicio de sesión de Facebook.
El problema es que cuando un nuevo usuario inicia sesión por primera vez, aparece una ventana emergente llamada "www.facebook.com/v11.0/dialog/oauth" que solicita al nuevo usuario que confirme que permite que mi página acceda a su información. .
El problema es que una vez que el usuario acepta los términos y confirma haciendo clic en el botón 'continuar como nombre ', en lugar de iniciarse en mi página de inicio como desearía, los usuarios se mantienen en mi página de inicio de sesión. Luego deben hacer clic por segunda vez en el botón 'Conectar por Facebook', que ahora puede hacer su trabajo y redirigir a mis usuarios a la página adecuada.
Básicamente, estoy buscando una manera de decirle al inicio de sesión de Facebook que solicite la redirección desde el interior de la ventana emergente de autenticación y omita la necesidad de hacer doble clic.
He configurado mi acceso en JavaScript y mi código se ve así:
$(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) { }); }); }); });Me imagino que la magia sucede durante el FB.login(); parte de mi función ya que ahí es donde terminan los nuevos usuarios antes de que me den su autorización para usar sus datos. Todavía estoy trabajando en mis habilidades de JavaScript, así que siento que me estoy perdiendo algo bastante simple.
¿Alguno de ustedes tiene una idea para resolver este problema?
Muchas gracias
Bueno, resulta que la solución fue muy simple desde el principio. Solo necesitaba modificar el FB.login(); parte como esta:
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'}); }Que es básicamente la misma función que tenía antes, solo que ahora sigue la función FB.login().