oauth google-oauth oauth.io

Obtener tokens de actualización de Google con OAuth.io



google-oauth (1)

Estoy tratando de obtener tokens de acceso de OAuth.io para cualquier proveedor de Google, sin embargo, cada vez que me autentico obtengo un access_token pero no refresh_token. He elegido sin conexión para access_type pero todavía no me gusta.

He intentado buscar en la documentación una solución, pero apenas cubre nada relacionado con el token de actualización.


Para obtener el token de actualización de Google, necesita 2 cosas:

  • La opción fuera de línea cf https://developers.google.com/accounts/docs/OAuth2WebServer

    "Un token que se puede usar para obtener un nuevo token de acceso. Los tokens de actualización son válidos hasta que el usuario cancele el acceso. Este campo solo está presente si access_type = offline está incluido en la solicitud del código de autorización".

  • La opción approval_prompt establecida en "forzar" cf https://developers.google.com/accounts/docs/OAuth2WebServer

    "Importante: cuando su aplicación recibe un token de actualización, es importante almacenar ese token de actualización para su uso futuro. Si su aplicación pierde el token de actualización, tendrá que volver a pedirle permiso al usuario antes de obtener otro token de actualización. necesita volver a solicitar al usuario su consentimiento, incluir el parámetro approval_prompt en la solicitud de código de autorización y establecer el valor en forzar. "

para que tu script se vea algo así como

OAuth.popup(''google'', { authorize: { approval_prompt: ''force'' } }).then(function(google) { console.log(google.refresh_token) //send the refresh token to your server })

Si está trabajando en el lado del cliente (Javascript / iOS / Android / Phonegap), también puede necesitar activar la siguiente opción: Send refresh token to front-end en el panel OAuth.io> General> opción avanzada para permitir que su lado del cliente SDK para recuperar el token de actualización

https://jsfiddle.net/Lqyc5jpw/