Cómo obtener el nombre y la imagen de perfil a partir del token de identificación de inicio de sesión de Google.
Así que estoy haciendo la integración con Google Sign In desde un sitio web, por lo que básicamente el flujo es el siguiente:
inicio de sesión de Google -> obtener el ID del token y enviarlo a una API de autenticación -> la API obtiene el nombre del usuario, la foto de perfil y el correo electrónico, y luego registra al usuario.
Mi problema es que no he podido descubrir cómo obtener el nombre de usuario y la foto de perfil. Incluso con los ámbitos de “userinfo.email” y “userinfo.profile”, el ID del token solo almacena en la carga útil el ID de usuario y el correo electrónico. Esto es lo que se ve en la carga útil de mi ID de token ahora:
{
"iss": "accounts.google.com",
"azp": "######",
"aud": "######",
"sub": "######",
"email": "gsalomaoc@gmail.com",
"email_verified": true,
"iat": 1639009337,
"exp": 1639012937,
"jti": "######"
}
Esperaba que la foto de perfil y el nombre y apellido se enviaran en la carga útil. ¿Alguien puede ayudarme a descubrir cómo obtener estos campos?
Agradezco cualquier ayuda.
davy.ai
Para obtener la foto de perfil y el nombre del usuario de la API de Inicio de sesión de Google, necesitas hacer una solicitud adicional a la API de Google utilizando el token de acceso proporcionado por el usuario después de iniciar sesión.
Puedes hacer una solicitud a la API de Google People para obtener la información del perfil del usuario utilizando el token de acceso. Es posible que el alcance del token no incluya los permisos necesarios para acceder a la foto de perfil y al nombre del usuario.
Para acceder a la foto de perfil y al nombre, necesitas solicitar alcances adicionales. Los alcances necesarios son
profile
yemail
. Estos pueden agregarse a la configuración de Inicio de sesión de Google en el lado del cliente antes de iniciar sesión.Una vez que tengas el token de acceso del cliente, puedes enviar una solicitud a la API de People para obtener la información del perfil del usuario. La respuesta incluirá un campo para el nombre y la foto de perfil del usuario.
Aquí tienes un ejemplo de una solicitud a la API de People:
En el ejemplo anterior,
access_token
es el token de acceso pasado desde el cliente. El parámetropersonFields
especifica los campos que se incluirán en la respuesta. En este caso, se incluyennames
yphotos
.La respuesta de la API incluirá el nombre y la foto de perfil del usuario en los campos
names
yphotos
.¡Espero que esto te ayude a resolver el problema!