Estoy tratando de usar Firebase para implementar el inicio de sesión de Google para nuestra aplicación web. esto es lo que he hecho para obtener el idtoken:
const google_provider = new GoogleAuthProvider(); google_provider.addScope("openid"); google_provider.addScope("profile"); google_provider.addScope("email"); signInWithPopup(auth, google_provider).then((result) => result.user.getIdToken()); Aunque agregué el alcance del perfil, todavía no puedo obtener los reclamos de nombre y familyname en el givenname (el idtoken email , picture y el name están disponibles)
(He intentado usar directamente el inicio de sesión de Google y allí pude ver todos los reclamos del perfil)
¿Qué me perdí aquí? Hice algo mal ?
El token de ID de Firebase devuelto por getIdToken() no contiene la información de la cuenta de Google del usuario que está buscando (esperar nombre, imagen de perfil, etc.). Debe usar el código de acceso obtenido del resultado de inicio de sesión para realizar una solicitud a la API de Google para obtenerlo.
signInWithPopup(auth, provider) .then(async (result) => { // This gives you a Google Access Token. You can use it to access the Google API. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; const response = await fetch('https://www.googleapis.com/oauth2/v1/userinfo', { headers: { Authorization: `Bearer ${token}` } }) const data = await response.json(); console.log(data); })