Skip to main content

Flujo de código de autorización de OAuth 2.0 con PKCE

Introducción

OAuth 2.0 es un protocolo de autorización estándar del sector que permite un mayor control sobre el alcance de una aplicación y sobre los flujos de autorización en múltiples dispositivos. OAuth 2.0 te permite elegir ámbitos específicos y granulares que te otorgan permisos concretos en nombre de un usuario.  Para habilitar OAuth 2.0 en tu App, debes activarlo en la configuración de autenticación de tu App, dentro de la sección de configuración de la App en la Consola de desarrollador.

¿Durante cuánto tiempo seguirán siendo válidas mis credenciales?

Por defecto, el token de acceso que generes mediante el flujo de código de autorización con PKCE solo se mantendrá válido durante dos horas, a menos que hayas usado el scope offline.access.

Tokens de actualización

Los tokens de actualización permiten que una aplicación obtenga un nuevo token de acceso sin necesidad de solicitar nuevamente la autorización del usuario, mediante el flujo de token de actualización. Si se aplica el scope offline.access, se emitirá un token de actualización de OAuth 2.0. Con este token de actualización, se puede obtener un token de acceso. Si este scope no se pasa, no generaremos un token de actualización. Un ejemplo de la solicitud que deberías hacer para usar un token de actualización y obtener un nuevo token de acceso es el siguiente:

Configuración de la App

Puedes configurar la autenticación de tu App como OAuth 1.0a u OAuth 2.0. También puedes habilitar una App para que utilice tanto OAuth 1.0a como OAuth 2.0. OAuth 2.0 solo se puede usar con la X API v2. Si has seleccionado OAuth 2.0, podrás ver un Client ID en la sección Keys and Tokens de tu App. 

Clientes confidenciales

Los clientes confidenciales pueden mantener credenciales de forma segura sin exponerlas a partes no autorizadas y autenticarse de forma segura con el servidor de autorización, manteniendo tu client secret protegido. Los clientes públicos, como normalmente se ejecutan en un navegador o en un dispositivo móvil, no pueden usar tus client secrets. Si seleccionas un tipo de App que sea un cliente confidencial, se te proporcionará un client secret.  Si seleccionaste en la Consola de desarrollador un tipo de cliente que sea un cliente confidencial, también podrás ver un Client Secret. Tus opciones son Native App, Single page App, Web App, Automated App o bot. Native App y Single page Apps son clientes públicos y Web App y Automated App o bots son clientes confidenciales. No necesitas client id para clientes confidenciales con un encabezado Authorization válido. Sin embargo, aún debes incluir Client Id en el cuerpo de las solicitudes con un cliente público. 

Alcances

Los alcances te permiten configurar un acceso granular para tu App de modo que solo tenga los permisos que necesita. Para obtener más información sobre qué alcances se asignan a qué endpoints, consulta nuestra guía de asignación de autenticación.

Límites de tasa

En la mayoría de los casos, los límites de tasa son los mismos que cuando se autentica con OAuth 1.0a, con la excepción de la búsqueda de Tweets y de Usuarios. Estamos aumentando el límite por App de 300 a 900 solicitudes cada 15 minutos cuando se usa OAuth 2.0 para la búsqueda de Tweets y la búsqueda de usuarios. Para obtener más información, consulta nuestra documentación sobre límites de tasa.

Tipos de concesión

Solo admitimos código de autorización con PKCE y token de actualización como tipos de concesión compatibles para este lanzamiento inicial. Es posible que ofrezcamos más tipos de concesión en el futuro.

Flujo de OAuth 2.0

OAuth 2.0 utiliza un flujo similar al que usamos actualmente para OAuth 1.0a. Consulta un diagrama y una explicación detallada en nuestra documentación sobre este tema

Glosario

Parámetros

Para construir una URL de autorización OAuth 2.0, deberás asegurarte de que la URL de autorización incluya los siguientes parámetros. 

URL de autorización

Con OAuth 2.0, creas una URL de autorización que puedes usar para permitir que un usuario se autentique mediante un flujo de autenticación, similar a “Iniciar sesión con X”.  Un ejemplo de la URL que estás creando es el siguiente:
Para que esta URL funcione, debes usar la codificación adecuada; asegúrate de consultar nuestra documentación sobre la codificación porcentual.