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

Ce module fournit des fonctionnalités d’authentification OAuth2 PKCE (Proof Key for Code Exchange) pour des flux d’autorisation sécurisés. Il inclut la génération du code\_verifier, la gestion des jetons et le rafraîchissement automatique des jetons.

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

Authentification OAuth2 PKCE pour l’API X.

<div id="parameters">
  #### Paramètres
</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>

Initialise l’authentification OAuth2 avec PKCE.

<div id="parameters">
  #### Paramètres
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'">
  L’URL de base du point de terminaison de jeton de X API (par défaut : [https://api.x.com](https://api.x.com)).
</ParamField>

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'">
  L’URL de base pour l’autorisation OAuth2 (par défaut : [https://x.com/i](https://x.com/i)).
</ParamField>

<ParamField path="path.client_id" type="str or None" default="None">
  L’ID client pour X API.
</ParamField>

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

<ParamField path="path.redirect_uri" type="str or None" default="None">
  L’URI de redirection pour l’autorisation OAuth2.
</ParamField>

<ParamField path="path.token" type="Dict[str, Any] or None" default="None">
  Un dictionnaire de jetons OAuth2 existant (le cas échéant).
</ParamField>

<ParamField path="path.scope" type="str or List[str] or None" default="None">
  Chaîne séparée par des espaces ou liste de chaînes pour les étendues (scopes) d’autorisation OAuth2.
</ParamField>

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

Échanger un code d’autorisation contre des jetons (équivaut à l’API TypeScript).

<div id="parameters">
  #### Paramètres
</div>

<ParamField path="path.code" type="str">
  Le code d’autorisation reçu dans le callback.
</ParamField>

<ParamField path="path.code_verifier" type="str or None" default="None">
  `code_verifier` facultatif (utilise le `code_verifier` stocké s’il n’est pas fourni).
</ParamField>

#### Renvoie

`Dictstr, Any`

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

Récupère le jeton en utilisant l’URL de réponse d’autorisation (ancienne méthode, utilise `exchange_code` en interne).

<div id="parameters">
  #### Paramètres
</div>

<ParamField path="path.authorization_response" type="str">
  L’URL de redirection complète reçue après l’autorisation
</ParamField>

#### Renvoie

`Dictstr, Any`

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

Renvoie l’URL d’autorisation pour le flux OAuth2 PKCE.

<div id="parameters">
  #### Paramètres
</div>

<ParamField path="path.state" type="str or None" default="None">
  Paramètre state facultatif à des fins de sécurité.
</ParamField>

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

`str`

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

Récupère le code challenge actuel (pour PKCE).
:returns: Renvoie le code challenge actuel, ou None s'il n'est pas défini.
:rtype: Optional\[str]

#### Renvoie

`str | None`

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

Renvoie le code verifier actuel (pour PKCE).
:returns: Le code verifier actuel, ou None s'il n'est pas défini.
:rtype: Optional\[str]

#### Renvoie

`str | None`

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

Vérifie si le jeton a expiré.
:returns: `True` si le jeton a expiré, `False` sinon.
:rtype: bool

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

`bool`

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

Rafraîchit le jeton d'accès.
:returns: Le dictionnaire du jeton rafraîchi
:rtype: Dict\[str, Any]

#### Renvoie

`Dictstr, Any`

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

Définit manuellement les paramètres PKCE.

<div id="parameters">
  #### Paramètres
</div>

<ParamField path="path.code_verifier" type="str">
  Le `code_verifier` à utiliser.
</ParamField>

<ParamField path="path.code_challenge" type="str or None" default="None">
  `code_challenge` facultatif (sera généré s'il n'est pas fourni).
</ParamField>
