Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

147
Vistas
Iniciar sesión con Google (GIS) en la aplicación Vue.js

Aparentemente, Google está descontinuando el servicio para gapi.oauth2 . Estoy tratando de usar sus nuevas herramientas para Iniciar sesión con Google, pero son muy confusas.

Estructura del proyecto
Tengo una interfaz de Vue donde necesito permitir que los usuarios inicien sesión con google. Luego necesito usar el flujo del servidor OIDC para autenticarlos en mi backend.

Mi estructura de archivos es la estructura predeterminada que le proporciona la CLI de Vue.

Seguí estos documentos , pero no explican cómo darle al usuario la oportunidad de iniciar sesión. ¿Cómo iniciamos todo el flujo? Pensé que tal vez el flujo se inició con el nuevo botón Iniciar sesión con Google , pero no puedo entender cómo hacer que este botón funcione.

Así es como estoy intentando las cosas ahora:

En App.vue tengo lo siguiente

 created() { loadGSIClient().then((this.GSILoaded = true)); }

googleAuth.js

 export function loadGSIClient() { console.log("loading GSI"); return new Promise((resolve, reject) => { const script = document.createElement("script"); script.src = "https://accounts.google.com/gsi/client"; script.onload = () => { var client = window.google.accounts.oauth2.initCodeClient({ client_id: process.env.VUE_APP_CLIENT_ID, scope: "https://www.googleapis.com/auth/calendar.readonly", ux_mode: "redirect", redirect_uri: "http://localhost:5001/sig-wig/us-central1/handleRedirect", }); resolve(client); }; script.onerror = (message, url, line, column, error) => { reject({ message, url, line, column, error }); }; }); }

Luego, en mi archivo de inicio de sesión AccessRequest tengo

 created() { var google = window.google; google.accounts.id.initialize({ client_id: process.env.VUE_APP_CLIENT_ID, callback: () => { "I'm a callback"; }, }); google.accounts.id.renderButton( document.getElementById("buttonDiv"), { theme: "outline", size: "large" } // customization attributes ); },

Sin embargo, esa configuración siempre arroja el error Error in created hook: "TypeError: Cannot read properties of undefined (reading 'accounts')"

Entonces parece que window.google existe cuando estoy en App.vue pero no en AccessRequest.vue . ¿Hay algún gran malentendido que tengo sobre cómo se supone que funciona todo esto?

¿Este botón "Iniciar sesión con Google" está destinado a funcionar con un flujo de servidor OIDC?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda