Saltar al contenido

Inicio de sesión de Google usando la API de Javascript sin activar la ventana emergente

Emilio, miembro de nuestro staff, nos hizo el favor de crear esta reseña ya que controla muy bien el tema.

Solución:

Puedes el uso modo_ux parámetro (las opciones son ‘redirigir’ o ‘surgir’) y establecer un redirigir_uri si desea redirigir a una página diferente.

También es necesario autorizar la URL para el cliente OAuth en la página de su proyecto de Google.

  function initClient() 
    gapi.client.init(
      apiKey: API_KEY,
      clientId: CLIENT_ID,
      discoveryDocs: DISCOVERY_DOCS,
      scope: SCOPES,
      ux_mode: 'redirect',
      //redirect_uri: custom url to redirect'
    ).then(function () 
      // Listen for sign-in state changes.
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

      // Handle the initial sign-in state.
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
      authorizeButton.onclick = handleAuthClick;
      signoutButton.onclick = handleSignoutClick;
    );
  

Dicha funcionalidad no se proporciona a través de la API de Google. Debe seguir con gapi.auth.signIn. Solo conozco una forma de hacerlo funcionar, pero es muy complicado.

gapi.auth.signIn abre la ventana de autenticación. Guarde la URL de la ventana de autenticación en su aplicación1. En lugar de llamar a gapi.auth.signIn, redirija al usuario a esa URL.

Para redirigir la autenticación exitosa a su sitio web, agregue/modifique el parámetro redirect_url en la URL2. Tenga en cuenta que redirect_uri debe estar registrado en la consola de desarrolladores.

Ejemplo: https://accounts.google.com/o/oauth2/auth?client_id=1234567890.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login&immediate=false&response_type=token&redirect_uri=http://ejemplo.com

De esta forma, Google redirigirá al usuario a su sitio web. access_token se proporciona a través de parámetros GET.

1Si Google cambia su API, esto puede fallar (ya que este método pasa por alto la API JS y asume que todos esos parámetros en la URL serán compatibles para siempre).

2Redirect_url se introduce en la documentación del flujo de acceso sin conexión. No creo que este parámetro haya sido diseñado para funcionar en otros casos.

Recomiendo encarecidamente no usar esta idea (ya que pasa por alto la API de JS y usa una funcionalidad no documentada). Siga con gapi.auth.signIn.

Te mostramos las reseñas y valoraciones de los usuarios

Tienes la opción de añadir valor a nuestro contenido informacional añadiendo tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *