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

# Autorización mediante PIN

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>;
};

<div id="pin-based-authorization">
  ### Autorización basada en PIN
</div>

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

El flujo OAuth basado en PIN lo inicia una App mediante `request_token` con `oauth_callback` establecido en `oob`. El término `oob` significa OAuth fuera de banda. El usuario sigue accediendo a X para iniciar sesión o autorizar la App, pero no será redirigido automáticamente a la aplicación al aprobar el acceso. En su lugar, verá un código PIN numérico, con instrucciones para volver a la aplicación e introducir este valor.

<Note>
  **Nota:** El `callback_url` dentro de la configuración de la App de X sigue siendo obligatorio, incluso cuando se utiliza autenticación basada en PIN.
</Note>

 

<div id="implementing-the-pin-based-oauth-flow">
  #### Implementar el flujo de OAuth basado en PIN
</div>

El flujo basado en PIN se implementa de la misma manera que la [autorización OAuth de 3 partes](/es/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens) (y [Iniciar sesión con X](/es/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](/es/resources/fundamentals/authentication/api-reference#post-oauth-request-token).

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

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

<Note>
  **Nota:** Los números PIN no se pueden reutilizar, y el `access_token` obtenido debe usarse para solicitudes de la aplicación en nombre del usuario.
</Note>
