funciona - Token de acceso de vencimiento de OAuth v2(Google API)
oauth2 tutorial (2)
Estoy construyendo un componente de integración usando un marco gráfico que tiene un conector OAuth2 preconstruido. Este marco requiere los siguientes campos para OAuth v2:
- Tipo de beca
- Alcance
- Auth Server URL
- Identificación del cliente
- Secreto del cliente
- Token de acceso
- Actualizar token
Necesito obtener datos de la API de Google Analytics, así que fui a Google Dev Console ( https://console.developers.google.com/project/927890000889/apiui/credential ). Genere un ''ID de cliente para la aplicación web''. Del parámetro de este objeto pude completar algunos de los parámetros anteriores
- Tipo de subvención: ''authorisation_code''
- ID de cliente: ''RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com''
- Client Secret: ''RANDOMCHARSiSwBA5OH5qYLUa''
Luego, al utilizar Google Oauth Playground ( https://developers.google.com/oauthplayground ), pude completar las partes que faltaban.
- Alcance: '' https://www.googleapis.com/oauth/analytics ''
- URL del servidor de autenticación: '' https://accounts.google.com/o/oauth2/auth ''
- Ficha de acceso: ''RANDOMCHARSQAQv4HRF5-JsQEzUS61lj2YremyCocv0PQ4-agpzJe''
- Actualizar token: ''RANDOMCHARSLPJnL4FPaDc2KP6V8kCzjjHO2Kj4Np_3X0''
Todo funciona bien, estoy autorizado para acceder y obtengo datos de Google Analytics, pero solo por un tiempo, después de unos minutos, si reintentaré recibo un error de error de autorización. Creo que el problema está relacionado con la expiración del token de acceso, pero no sé cómo resolverlo. Vale la pena mencionar que esta actividad es por lotes (sin interacción humana), por lo que nadie puede solicitar un nuevo token de acceso. El marco de integración no es extensible (no puedo escribir código para renovar el código), así que creo que hay una manera de obtener un token de acceso que nunca caduque o algún otro mecanismo para lograr el mismo resultado.
En pocas palabras, no estoy seguro de si me acerqué al requisito correctamente desde el principio (ID de cliente para la aplicación web).
Cualquier ayuda es muy apreciada, Giovanni
Los tokens de acceso normalmente caducan después de 60 minutos. Si tiene un token de actualización, puede usar el token de actualización para obtener un nuevo token de acceso (válido).
Este documento explica cómo hacerlo:
https://developers.google.com/accounts/docs/OAuth2WebServer#refresh
Para responder a tu pregunta general, sí, te estás acercando a todo correctamente. Todo lo que necesita hacer es manejar el caso donde el token de acceso ha expirado al actualizarlo. Además, cuando solicitó originalmente el token de acceso, la respuesta le indicará por cuánto tiempo es válido, por lo que solo debe actualizar ese token si ha caducado.
Puede usar tokens de actualización para que se use más tiempo. El servidor de Google Auth emitido Refresh tokens nunca caduca, un token puede dejar de funcionar por una de estas razones: El usuario ha revocado el acceso. El token no se ha usado durante seis meses. El usuario cambió las contraseñas y el token contiene los ámbitos de Gmail. La cuenta de usuario ha excedido una cierta cantidad de solicitudes de tokens. Actualmente hay un límite de 50 tokens de actualización por cuenta de usuario por cliente. Si se alcanza el límite, la creación de un nuevo token invalida automáticamente el token más antiguo sin previo aviso. Este límite no se aplica a las cuentas de servicio.
desde: https://developers.google.com/identity/protocols/OAuth2