setaccesstype secret google security google-api oauth-2.0 google-api-java-client google-oauth

security - secret - OAuth2 y Google API: ¿Tiempo de caducidad del token de acceso?



refresh token google api (3)

Aquí hay una observación más a la pregunta de vencimiento del token de acceso de Google. Tengo un servidor que hace uso de Google Oauth2 y usa el punto final https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN para realizar un primer nivel de autenticación. Lo que he encontrado es que, si se usa de esta manera, el token de acceso tiene una duración de vida mucho más larga que 60 minutos. No estoy seguro de que caduque cuando solo se usa de esta manera.

¿Alguien ha visto la documentación de la duración de vencimiento de los tokens de acceso utilizados solo de esta manera?

Tenemos una aplicación Java independiente (consulte ''Aplicación instalada'': https://developers.google.com/accounts/docs/OAuth2 ) que se ejecuta periódicamente y utiliza la API de Google (actualiza algunas informaciones de bases de datos de clientes / ldap / ...) .

Para acceder a las API de Google, almacenamos el nombre de usuario y la contraseña en el archivo de configuración, que es un riesgo de seguridad y al cliente no le gusta. Entonces, nos gustaría utilizar el token de acceso de larga duración OAuth2.

¿Cuál es el tiempo de expiración predeterminado para los tokens de acceso de Google OAuth2?

Como solo tendremos token de acceso en la aplicación, la aplicación no puede actualizarlo cuando expira el token de acceso ...

Personalmente, creo que la implementación de OAuth2 en este caso no traerá ningún beneficio importante, pero centrémonos en la pregunta principal: los tiempos de caducidad predeterminados.


La fecha de caducidad predeterminada para el token de acceso de google oauth2 es de 1 hora. El expiry_date está en el tiempo de época de Unix en milisegundos. Si quiere leer esto en formato legible, entonces simplemente puede verificarlo aquí. Marca de tiempo de Unix a tiempo legible por humanos


No debe diseñar su aplicación en función del tiempo de vida específico de los tokens de acceso. Solo asume que son (muy) de corta duración.

Sin embargo, después de completar con éxito el flujo de aplicación instalado OAuth2, recibirá un token de actualización. Este token de actualización nunca caduca, y puede usarlo para cambiarlo por un token de acceso según sea necesario. Guarde los tokens de actualización y utilícelos para obtener tokens de acceso bajo demanda (que luego deberían usarse inmediatamente para obtener acceso a los datos del usuario).

EDITAR: a pesar de mis comentarios anteriores, hay dos maneras sencillas de obtener el tiempo de caducidad del token de acceso:

  1. Es un parámetro en la respuesta ( expires_in ) cuando intercambias el token de actualización (usando / o / oauth2 / token endpoint). Más detalles.
  2. También hay una API que devuelve el tiempo de vida restante de access_token:

    https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}

    Esto devolverá una matriz json que contendrá un parámetro expires_in , que es la cantidad de segundos que quedan en el tiempo de vida del token.