> ## 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.

# OAuth2PKCEAuth

Este módulo proporciona funcionalidad de autenticación OAuth2 con PKCE (Proof Key for Code Exchange)
para flujos de autorización seguros. Incluye la generación de verificadores de código,
la gestión de tokens y la actualización automática de tokens.

<div id="class-xdkoauth2_authoauth2pkceauth">
  ### `class xdk.oauth2_auth.OAuth2PKCEAuth`
</div>

Autenticación OAuth2 PKCE para la X API.

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'" />

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'" />

<ParamField path="path.client_id" type="str or None" default="None" />

<ParamField path="path.client_secret" type="str or None" default="None" />

<ParamField path="path.redirect_uri" type="str or None" default="None" />

<ParamField path="path.token" type="Dict[str, Any] or None" default="None" />

<ParamField path="path.scope" type="str or List[str] or None" default="None" />

<div id="__init__">
  ### `__init__`
</div>

Inicializa la autenticación OAuth2 con PKCE.

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'">
  La URL base para el endpoint de tokens de X API (valor predeterminado: [https://api.x.com](https://api.x.com)).
</ParamField>

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'">
  La URL base para la autorización OAuth2 (valor predeterminado: [https://x.com/i](https://x.com/i)).
</ParamField>

<ParamField path="path.client_id" type="str or None" default="None">
  El client ID para X API.
</ParamField>

<ParamField path="path.client_secret" type="str or None" default="None">
  El client secret para X API.
</ParamField>

<ParamField path="path.redirect_uri" type="str or None" default="None">
  La URI de redirección para la autorización OAuth2.
</ParamField>

<ParamField path="path.token" type="Dict[str, Any] or None" default="None">
  Un diccionario de tokens OAuth2 existente (si está disponible).
</ParamField>

<ParamField path="path.scope" type="str or List[str] or None" default="None">
  Cadena separada por espacios o lista de cadenas para los ámbitos de autorización OAuth2.
</ParamField>

<div id="exchange_code">
  ### `exchange_code`
</div>

Intercambia un código de autorización por tokens (coincide con la API de TypeScript).

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.code" type="str">
  El código de autorización recibido en el callback.
</ParamField>

<ParamField path="path.code_verifier" type="str or None" default="None">
  Verificador de código opcional (usa el verificador almacenado si no se proporciona).
</ParamField>

<div id="returns">
  #### Devuelve
</div>

`Dictstr, Any`

<div id="fetch_token">
  ### `fetch_token`
</div>

Obtiene el token mediante la URL de respuesta de autorización (método heredado, usa exchange\_code internamente).

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.authorization_response" type="str">
  La URL de redirección completa recibida tras la autorización
</ParamField>

<div id="returns">
  #### Devuelve
</div>

`Dictstr, Any`

<div id="get_authorization_url">
  ### `get_authorization_url`
</div>

Obtiene la URL de autorización para el flujo PKCE de OAuth 2.0.

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.state" type="str or None" default="None">
  Parámetro opcional de estado (`state`) para mayor seguridad.
</ParamField>

<div id="returns">
  #### Devuelve
</div>

`str`

<div id="get_code_challenge">
  ### `get_code_challenge`
</div>

Devuelve el *code challenge* actual (para PKCE).
:returns: El *code challenge* actual, o None si no está definido.
:rtype: Optional\[str]

<div id="returns">
  #### Devuelve
</div>

`str | None`

<div id="get_code_verifier">
  ### `get_code_verifier`
</div>

Obtiene el verificador de código actual (para PKCE).
:returns: El verificador de código actual o None si no está establecido.
:rtype: Optional\[str]

<div id="returns">
  #### Devuelve
</div>

`str | None`

<div id="is_token_expired">
  ### `is_token_expired`
</div>

Comprueba si el token ha caducado.
:returns: True si el token ha caducado, False en caso contrario.
:rtype: bool

<div id="returns">
  #### Devuelve
</div>

`bool`

<div id="refresh_token">
  ### `refresh_token`
</div>

Actualiza el token de acceso.
:returns: El diccionario de token renovado
:rtype: Dict\[str, Any]

<div id="returns">
  #### Devuelve
</div>

`Dictstr, Any`

<div id="set_pkce_parameters">
  ### `set_pkce_parameters`
</div>

Configura manualmente los parámetros PKCE.

<div id="parameters">
  #### Parámetros
</div>

<ParamField path="path.code_verifier" type="str">
  El `code_verifier` que se va a utilizar.
</ParamField>

<ParamField path="path.code_challenge" type="str or None" default="None">
  `code_challenge` opcional (se generará si no se proporciona).
</ParamField>
