Para integrar la autenticación de X (antes Twitter) en su Embedded Wallet, deberá configurar su aplicación para usar OAuth 2.0 de X.

Agregue su Client ID en Sequence Builder

Primero, debe crear una aplicación en el X Developer Portal para obtener un Client ID y un Client Secret. Después de crear su aplicación, debe agregar el Client ID a la configuración de su proyecto en Sequence Builder.
  1. Vaya a su proyecto en Sequence Builder.
  2. Navegue a la configuración de Embedded Wallet.
  3. En la sección de proveedores de autenticación, busque X (Twitter) y pegue su Client ID en el campo correspondiente.
Este paso es crucial para que Sequence pueda verificar las solicitudes de autenticación que provienen de su aplicación.

Autenticación con el SDK

Una vez que tenga un access token de X, puede pasarlo al Sequence WaaS SDK para iniciar sesión al usuario. Esto es diferente a otros proveedores OIDC como Google o Epic Games, donde se utiliza un idToken. Para X, debe usar el parámetro xAccessToken.
await sequence.signIn({ 
  xAccessToken: 'YOUR_X_ACCESS_TOKEN' 
});
Para más detalles sobre cómo implementar el flujo de inicio de sesión en su aplicación, consulte la documentación de autenticación.

Obtener un Access Token de X

Para obtener un access token, debe implementar el flujo OAuth 2.0 PKCE. Debido a problemas con la implementación OAuth 2.0 de X, Sequence ofrece un servicio proxy personalizado para garantizar un flujo de autenticación fluido y confiable.

Uso del Sequence X Auth Proxy

En lugar de enviar solicitudes directamente a api.x.com, utilizará la URL del proxy de Sequence que facilita el flujo OAuth 2.0. Al realizar el intercambio de tokens en su flujo OAuth 2.0 PKCE, debe apuntar a la siguiente URL:
https://xproxy.sequence.xyz/api.x.com/2/oauth2/token

Ejemplo de implementación

Aquí tiene un ejemplo mínimo de cómo implementar el flujo de autenticación de X usando el proxy de Sequence.
// This function constructs the authorization URL and redirects the user.
function redirectToXAuth() {
  const params = new URLSearchParams({
    response_type: 'code',
    client_id: 'YOUR_X_CLIENT_ID', // Replace with your X Client ID
    redirect_uri: 'YOUR_REDIRECT_URI', // Your callback URL
    scope: 'users.read email.read tweet.read', // Required scopes
    state: 'state', // A random string for security
    code_challenge: 'challenge', // A PKCE code challenge
    code_challenge_method: 'plain', // Use 'S256' in production
  });

  window.location.assign(`https://x.com/i/oauth2/authorize?${params.toString()}`);
}
Para aplicaciones en producción, debe usar el S256 como code_challenge_method para PKCE, que es más seguro. Esto requiere generar una cadena aleatoria como code_verifier, hashearla con SHA-256 y enviar el hash codificado en Base64-URL como code_challenge. El code_verifier original se envía luego en la solicitud de token.

Scopes requeridos

Al configurar su aplicación de X y solicitar autorización a los usuarios, debe incluir al menos los siguientes scopes:
  • users.read
  • email.read
  • tweet.read
Es importante incluir tweet.read. Debido a una particularidad en la API de X, si no se solicita este scope, los demás pueden no funcionar correctamente. Sequence no lee ningún tweet de usuario; este permiso se solicita únicamente para asegurar que el proceso de autenticación funcione correctamente.