Cómo conectarse a endpoints usando OAuth 2.0 Authorization Code Flow con PKCE
Cómo conectarse a los endpoints
Para autenticar a tus usuarios, tu App deberá implementar un flujo de autorización. Este flujo de autorización te permite dirigir a tus usuarios a un diálogo de autorización en X. Desde allí, la experiencia principal de X mostrará el diálogo de autorización y manejará la autorización en nombre de tu App. Tus usuarios podrán autorizar tu App o denegar el permiso. Después de que el usuario tome su decisión, X redirigirá al usuario a tu App, donde podrás intercambiar el authorization code por un access token (si el usuario autorizó tu App), o manejar un rechazo (si el usuario no autorizó tu App).Trabajando con clientes confidenciales
Si estás trabajando con clientes confidenciales, necesitarás usar un esquema de autenticación básica para generar un encabezado de autorización con codificación base64 mientras realizas solicitudes a los endpoints de token. Eluserid y la password están separados por un solo carácter de dos puntos (”:”) dentro de una cadena codificada en base64 en las credenciales.
Un ejemplo se vería así:
-header 'Authorization: Basic V1ROclFTMTRiVWhwTWw4M2FVNWFkVGQyTldNNk1UcGphUTotUm9LeDN4NThKQThTbTlKSXQyZm1BanEzcTVHWC1icVozdmpKeFNlR3NkbUd0WEViUA=='
Si el user agent desea enviar el Client ID “Aladdin” y la contraseña “open sesame”, usaría el siguiente campo de encabezado:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Para crear el encabezado de autorización básica necesitarás codificar en base64 tu Client ID y Client Secret, que se pueden obtener desde la página “Keys and Tokens” de tu App dentro de la Developer Console.
Pasos para conectarse usando OAuth 2.0
Paso 1: Construye una Authorize URL Tu App necesitará construir una URL de autorización a X, indicando los scopes que tu App necesita autorizar. Por ejemplo, si tu App necesita buscar Tweets, usuarios y gestionar follows, debería solicitar los siguientes scopes:tweet.read%20users.read%20follows.read%20follows.write
La URL también contendrá los parámetros code_challenge y state, además de los otros parámetros requeridos. En producción deberías usar una cadena aleatoria para el code_challenge.
Paso 2: GET oauth2/authorize
Haz que el usuario se autentique y envíe a la aplicación un authorization code. Si has habilitado OAuth 2.0 para tu App, puedes encontrar tu Client ID en la página “Keys and Tokens” de tu App.
Una URL de ejemplo a la que redirigir al usuario se vería así:
offline.access). Puedes realizar una solicitud POST al siguiente endpoint:
Content-Type de application/x-www-form-urlencoded a través de un encabezado. Además, deberías tener en tu solicitud: code, grant_type, client_id y redirect_uri, y el code_verifier.
Aquí hay un ejemplo de solicitud de token para un cliente público:
Content-Type de application/x-www-form-urlencoded a través de un encabezado. Además, también deberás pasar tu refresh_token, establecer tu grant_type como refresh_token y definir tu client_id.
Esta solicitud funcionará para clientes públicos:
Content-Type de application/x-www-form-urlencoded a través de un encabezado, tu token y tu client_id.
En algunos casos, un usuario puede desear revocar el acceso otorgado a una App; puede revocar el acceso visitando la página de Apps conectadas.