Nota: Actualmente, los tokens de usuario con vigencia determinada son una característica opcional y están sujetos a cambios. Para participar o no en la característica de expiración de tokens de usuario a servidor, consulta Activar las características opcionales para las apps. Para obtener más información, consulta Tokens de acceso con caducidad de usuario a servidor para las GitHub Apps.
Acerca de los tokens de acceso de usuario con caducidad
Para cumplir con la rotación habitual de tokens y reducir el impacto de que se ponga en riesgo alguno de ellos, puedes configurar tu GitHub App para que utilice tokens de acceso de usuario con caducidad. Para obtener más información sobre cómo realizar solicitudes de usuario a servidor, consulta "Identificación y autorización de usuarios para aplicaciones de GitHub".
La caducidad de los tokens se alcanza después de 8 horas. Cuando recibes un token nuevo para el acceso de usuario a servidor, la respuesta también contendrá un token de actualización, el cual se puede intercambiar por un token de usuario nuevo y un token de actualización. Los tokens de actualización son válidos por 6 meses.
Renovar un token de usuario con un token de actualización
Para renovar un token de acceso de usuario a servidor que va a expirar, puedes intercambiar refresh_token
por un nuevo token de acceso y refresh_token
.
POST https://github.com/login/oauth/access_token
Esta solicitud de rellamada te enviará un token de acceso y un token de actualización nuevos. Esta solicitud de devolución de llamada es similar a la solicitud de OAuth que utilizarías para intercambiar un code
temporal para un token de acceso. Para obtener más información, consulte "Identificación y autorización de usuarios para GitHub Aplicaciones" y "Aspectos básicos de la autenticación".
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
refresh_token | string | Obligatorio. El token que se genera cuando el propietario de GitHub App habilita los tokens con caducidad y emite un token de acceso de usuario nuevo. |
grant_type | string | Obligatorio. El valor debe ser refresh_token (requerido por la especificación de OAuth). |
client_id | string | Obligatorio. El identificador de cliente de GitHub App. |
client_secret | string | Obligatorio. El secreto de cliente de GitHub App. |
Response
{
"access_token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a",
"expires_in": "28800",
"refresh_token": "ghr_1B4a2e77838347a7E420ce178F2E7c6912E169246c34E1ccbF66C46812d16D5B1A9Dc86A1498",
"refresh_token_expires_in": "15811200",
"scope": "",
"token_type": "bearer"
}
Configurar los tokens de usuario con caducidad para una GitHub App existente
Puedes habilitar o inhabilitar los tokens de autorización de usuario a servidor desde los ajustes de tu GitHub App.
-
En la esquina superior derecha de cualquier página, haga clic en la foto del perfil y, luego, en Settings (Configuración).
-
In the left sidebar, click Developer settings.
-
En la barra lateral izquierda, haga clic en GitHub Apps (Aplicaciones de Github).
-
Haz clic en Editar junto a la GitHub App que hayas elegido.
-
En la barra lateral izquierda, haz clic en Características opcionales.
-
Junto a "Expiración de tokens de usuario a servidor", haz clic en Activar o Desactivar. Esta configuración puede tardar un par de segundos en aplicarse.
Decidir no unirse a los tokens con caducidad para las GitHub Apps nuevas
Cuando creas una GitHub App, ésta utilizará predeterminadamente los tokens de acceso de usuario a servidor con caducidad.
Si quieres que tu app utlice tokens de acceso de usuario a servidor sin caducidad, puedes deseleccionar la opción "Poner caducidad en los tokens de autorización de usuario" en la página de ajustes de la app.
Las GitHub Apps existentes que utilicen tokens de autorización de usuario a servidor solo se verán afectadas por este flujo nuevo cuando el propietario de la app habilite la caducidad de los tokens para la app en cuestión.
Habilitar los tokens de usuario con caducidad para las GitHub Apps existentes requiere que se envíen los usuarios a través del flujo de OAuth para re-emitir tokens de usuario nuevos que caducarán en 8 horas y que harán una solicitud con el token de actualización para obtener un token de acceso y un token de actualización nuevos. Para obtener más información, consulta "Identificación y autorización de usuarios para aplicaciones de GitHub".