Necesito hacer la autentificación con google oauth2. Instalé nuxt/auth-next y creé una configuración para la autenticación como esta.
auth: { strategies: { google: { scope: ['profile', 'email'], endpoints: { userInfo: `${process.env.API_URL}/user` }, codeChallengeMethod: '', token: { property: 'id_token' }, refreshToken: { property: 'refresh_token' }, prompt: 'consent', access_type: 'offline', responseType: 'id_token token', clientId: process.env.GOOGLE_CLIENT_ID } } }La parte de inicio de sesión funciona, pero el refresh_token nunca se agrega en el almacenamiento local (auth._refresh_token.google = false).
Encontré solo una cosa. El token de actualización se otorga solo en la primera autorización... pero no para mí. ( No recibo el token de actualización de Google OAuth ) He usado https://myaccount.google.com/permissions para revertir el permiso de mi aplicación.
¿Alguien se enfrentó al mismo problema? Solución ?
Tal vez la propiedad de refresh_token no sea buena, pero no encontré ningún documento al respecto.
Gracias por tu ayuda
Según el lenguaje de programación, Google solo devolverá un token de actualización la primera vez que el usuario otorgue su consentimiento a la aplicación. Lo he visto con mayor frecuencia con los marcos de JavaScript.
Una vez le pregunté al equipo al respecto y la respuesta que obtuve fue. Google asume que los desarrolladores han almacenado el token de actualización.
Sin embargo, con lenguajes como C#, php, python, Java, Ruby, todos devuelven un nuevo token de actualización cada vez que el usuario da su consentimiento. Lo cual se debe al hecho de que la aplicación puede ejecutarse desde más de un lugar, supongo.
Puede intentar agregar prompt=force, debería volver a solicitar el consentimiento del usuario. Puede devolver un nuevo token de actualización.