> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Autorización basada en PIN

> Usa el flujo OAuth basado en PIN para X apps que no pueden incrustar un navegador, como herramientas de línea de comandos y consolas de juegos, ingresando un PIN numérico como el oauth_verifier.

export const Button = ({href, children}) => {
  return <div className="not-prose group">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-full group-hover:opacity-[0.9] font-medium">
        <span>
          {children}
        </span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

### Autorización basada en PIN

El flujo OAuth basado en PIN es una versión del proceso [OAuth de 3 patas](/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens) y está pensado para aplicaciones que no pueden acceder o incrustar un navegador web para redirigir al usuario después de la autorización. Ejemplos de tales aplicaciones serían aplicaciones de línea de comandos, sistemas embebidos, consolas de juegos y ciertos tipos de aplicaciones móviles.

El flujo OAuth basado en PIN es iniciado por una app en el `request_token` con el `oauth_callback` establecido en `oob`. El término `oob` significa OAuth fuera de banda (out-of-band). El usuario aún visita X para iniciar sesión o autorizar la app, pero no será redirigido automáticamente a la aplicación tras aprobar el acceso. En cambio, verá un código PIN numérico, con instrucciones para regresar a la aplicación e ingresar este valor.

<Note>
  **Nota:** La `callback_url` en la configuración de la X app sigue siendo obligatoria, incluso cuando se utiliza autenticación basada en PIN.
</Note>

#### Implementación del flujo OAuth basado en PIN

El flujo basado en PIN se implementa de la misma manera que la [autorización de 3 patas](/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens) (e [Iniciar sesión con X](/resources/fundamentals/authentication#log-in-with-x)), con las siguientes diferencias:

1. El valor de `oauth_callback` debe establecerse en `oob` durante la llamada [POST oauth/request\_token](/resources/fundamentals/authentication/api-reference#post-oauth-request-token).

2. Después de que el usuario es enviado a X para autorizar tu app usando una URL [GET oauth/authenticate](/resources/fundamentals/authentication/api-reference#get-oauth-authenticate) o [GET oauth/authorize](/resources/fundamentals/authentication/api-reference#get-oauth-authorize), no será redirigido a tu `callback_url`, sino que verá una pantalla con un PIN de aproximadamente 7 dígitos generado por X con instrucciones para ingresar el PIN en tu aplicación.

3. El usuario ingresa este PIN en tu aplicación, y tu aplicación usa el número de PIN como el `oauth_verifier` en el [POST oauth/access\_token](/resources/fundamentals/authentication/api-reference#post-oauth-access-token) para obtener un access\_token.

<Note>
  **Nota:** Los números PIN no son reutilizables, y el `access_token` obtenido debe usarse para las solicitudes application-user.
</Note>
