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

यह मॉड्यूल सुरक्षित ऑथराइज़ेशन फ़्लो के लिए OAuth2 PKCE (Proof Key for Code Exchange) प्रमाणीकरण
सुविधा प्रदान करता है। इसमें कोड वेरिफ़ायर जनरेट करना,
टोकन प्रबंधन, और स्वचालित टोकन रीफ़्रेश जैसी क्षमताएँ शामिल हैं।

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

X API के लिए OAuth2 PKCE प्रमाणीकरण।

<div id="parameters">
  #### पैरामीटर
</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>

OAuth2 PKCE प्रमाणीकरण प्रारंभ करता है।

<div id="parameters">
  #### पैरामीटर
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'">
  X API टोकन endpoint के लिए base URL ([https://api.x.com](https://api.x.com) डिफ़ॉल्ट रूप से सेट है)।
</ParamField>

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'">
  OAuth2 ऑथराइज़ेशन के लिए base URL ([https://x.com/i](https://x.com/i) डिफ़ॉल्ट रूप से सेट है)।
</ParamField>

<ParamField path="path.client_id" type="str or None" default="None">
  X API के लिए client ID।
</ParamField>

<ParamField path="path.client_secret" type="str or None" default="None">
  X API के लिए client secret।
</ParamField>

<ParamField path="path.redirect_uri" type="str or None" default="None">
  OAuth2 ऑथराइज़ेशन के लिए redirect URI।
</ParamField>

<ParamField path="path.token" type="Dict[str, Any] or None" default="None">
  मौजूदा OAuth2 token dictionary (यदि उपलब्ध हो)।
</ParamField>

<ParamField path="path.scope" type="str or List[str] or None" default="None">
  OAuth2 ऑथराइज़ेशन scope के लिए स्पेस से अलग की गई string या strings की सूची।
</ParamField>

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

टोकन के लिए ऑथराइज़ेशन कोड का विनिमय करें (TypeScript API के अनुरूप)।

<div id="parameters">
  #### पैरामीटर
</div>

<ParamField path="path.code" type="str">
  कॉलबैक से प्राप्त ऑथराइज़ेशन code।
</ParamField>

<ParamField path="path.code_verifier" type="str or None" default="None">
  वैकल्पिक code verifier (यदि प्रदान नहीं किया गया है, तो संग्रहीत verifier का उपयोग किया जाता है)।
</ParamField>

<div id="returns">
  #### रिटर्न
</div>

`Dictstr, Any`

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

ऑथराइज़ेशन रिस्पॉन्स URL का उपयोग करके टोकन प्राप्त करें (लेगेसी विधि, आंतरिक रूप से exchange\_code का उपयोग करती है)।

<div id="parameters">
  #### पैरामीटर
</div>

<ParamField path="path.authorization_response" type="str">
  ऑथराइज़ेशन के बाद प्राप्त पूरा callback URL
</ParamField>

<div id="returns">
  #### रिटर्न
</div>

`Dictstr, Any`

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

OAuth2 PKCE flow के लिए ऑथराइज़ेशन URL प्राप्त करें।

<div id="parameters">
  #### पैरामीटर
</div>

<ParamField path="path.state" type="str or None" default="None">
  सुरक्षा के लिए एक वैकल्पिक state पैरामीटर।
</ParamField>

<div id="returns">
  #### रिटर्न
</div>

`str`

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

वर्तमान code challenge प्राप्त करता है (PKCE के लिए)।
:returns: वर्तमान code challenge, या सेट न होने पर None।
:rtype: Optional\[str]

<div id="returns">
  #### रिटर्न
</div>

`str | None`

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

वर्तमान code verifier लौटाता है (PKCE के लिए)।
:returns: वर्तमान code verifier, या यदि यह सेट न हो तो None।
:rtype: Optional\[str]

<div id="returns">
  #### रिटर्न
</div>

`str | None`

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

जांचें कि टोकन की समय-सीमा समाप्त हो चुकी है या नहीं।
:returns: यदि टोकन की समय-सीमा समाप्त हो चुकी है, तो True; अन्यथा False।
:rtype: bool

<div id="returns">
  #### रिटर्न
</div>

`bool`

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

एक्सेस टोकन को रीफ़्रेश करता है।
:returns: रीफ़्रेश किया गया टोकन डिक्शनरी
:rtype: Dict\[str, Any]

<div id="returns">
  #### रिटर्न
</div>

`Dictstr, Any`

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

PKCE पैरामीटर को मैन्युअली सेट करें।

<div id="parameters">
  #### पैरामीटर
</div>

<ParamField path="path.code_verifier" type="str">
  इस्तेमाल किया जाने वाला code verifier.
</ParamField>

<ParamField path="path.code_challenge" type="str or None" default="None">
  वैकल्पिक code challenge (अगर नहीं दिया गया है, तो इसे जनरेट किया जाएगा)।
</ParamField>
