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

# Autorizar

> Inicia el Flujo de código de autorización con PKCE, la concesión de OAuth 2.0 recomendada para aplicaciones móviles y de una sola página.

export const ResponseSchema = ({statusCode, type = "{}", children}) => {
  const [open, setOpen] = useState(false);
  return <div className="border border-gray-100 dark:border-gray-800 rounded-lg mb-3 overflow-hidden">
      <div className={`flex items-center gap-2.5 px-4 py-2.5 cursor-pointer select-none ${open ? "bg-gray-50 dark:bg-gray-800" : ""}`} onClick={() => setOpen(!open)}>
        {statusCode && <span className="border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 font-mono text-xs px-1.5 py-0.5 rounded">
            {statusCode.startsWith("default") ? "default" : statusCode}
          </span>}
        <span className="text-gray-500 dark:text-gray-400 text-sm font-mono">
          {type}
        </span>
        <span className="text-gray-400 dark:text-gray-500 text-sm italic">
          application/json
        </span>
        <svg className={`ml-auto opacity-50 transition-transform duration-200 ${open ? "rotate-180" : ""}`} width="16" height="16" viewBox="0 0 16 16" fill="none">
          <path d="M4 6l4 4 4-4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
      </div>
      {open && <div className="px-4 pt-1 pb-3 border-t border-gray-100 dark:border-gray-800">
          {children}
        </div>}
    </div>;
};

<div id="endpoint">
  ## Endpoint
</div>

`GET /authorize`

Este es la concesión de OAuth 2.0 que utilizan las aplicaciones móviles para acceder a una API. Antes de comenzar con este flujo, debes generar y almacenar un `code_verifier` y, a partir de él, generar un `code_challenge` que se enviará en la solicitud de autorización.

<div id="query-parameters">
  ## Parámetros de consulta
</div>

<ParamField query="audience" type="string" required>
  El identificador único de la API de destino a la que quiere acceder.
</ParamField>

<ParamField query="resource" type="string">
  El identificador de la API de destino (servidor de recursos) a la que quiere acceder. Debe coincidir con un identificador de API registrado en su inquilino de Auth0. Se usa como alternativa a `audience` cuando el [Resource Parameter Compatibility Profile](https://auth0.com/docs/get-started/tenant-settings#settings-advanced) del inquilino está configurado como `compatibility`.
</ParamField>

<ParamField query="scope" type="string">
  Los alcances para los que quiere solicitar autorización. Deben estar separados por espacios. Puede solicitar alcances estándar de OpenID Connect (OIDC), claims personalizados o cualquier alcance compatible con la API de destino. Incluya 'offline\_access' para obtener un Token de actualización.
</ParamField>

<ParamField query="response_type" type="string" required>
  Indica a Auth0 qué flujo de OAuth 2.0 quiere realizar. Use 'code' para el flujo de código de autorización (PKCE).

  Valores permitidos: `code`
</ParamField>

<ParamField query="client_id" type="string" required>
  El ID de cliente de su aplicación.
</ParamField>

<ParamField query="state" type="string">
  Un valor opaco que el cliente agrega a la solicitud inicial y que Auth0 incluye al redirigir de vuelta al cliente. El cliente debe usar este valor para evitar ataques CSRF.
</ParamField>

<ParamField query="redirect_uri" type="string">
  La URL a la que Auth0 redirigirá el navegador una vez que el usuario haya concedido la autorización.
</ParamField>

<ParamField query="code_challenge_method" type="string" required>
  Método usado para generar el desafío. Use `S256`, ya que Auth0 solo admite este método.

  Valores permitidos: `S256`
</ParamField>

<ParamField query="code_challenge" type="string" required>
  Desafío generado a partir de `code_verifier`.
</ParamField>

<ParamField query="connection" type="string">
  El nombre de la conexión configurada para su aplicación.
</ParamField>

<ParamField query="prompt" type="string">
  Para iniciar una solicitud de autenticación silenciosa, use `prompt=none`.
</ParamField>

<ParamField query="organization" type="string">
  ID de la organización que se usará al autenticar a un usuario.
</ParamField>

<ParamField query="invitation" type="string">
  ID del ticket de invitación de la organización.
</ParamField>

<ParamField query="dpop_jkt" type="string">
  La huella digital JWK [RFC7638](https://www.rfc-editor.org/rfc/rfc7638.html) de la clave pública de prueba de posesión, mediante la función hash SHA-256.
</ParamField>

<div id="response-schema">
  ## Esquema de respuesta
</div>

<ResponseSchema statusCode="default error">
  <ResponseField name="error" type="string">
    Código de error.
  </ResponseField>

  <ResponseField name="error_description" type="string">
    Descripción del error.
  </ResponseField>
</ResponseSchema>

<div id="response-messages">
  ## Mensajes de respuesta
</div>

| Estado  | Descripción                                                   |
| ------- | ------------------------------------------------------------- |
| 302     | Redirige al `redirect_uri` especificado tras la autorización. |
| default | Error inesperado                                              |
