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

# OAuth 1.0a

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="oauth-10a">
  ## OAuth 1.0a
</div>

X डेवलपर प्लेटफ़ॉर्म पर कई एंडपॉइंट, किसी X खाते की ओर से कार्रवाई करने या API अनुरोध भेजने के लिए OAuth 1.0a विधि का उपयोग करते हैं। उदाहरण के लिए, यदि आपके पास X डेवलपर ऐप है, तो आप किसी भी X खाते की ओर से API अनुरोध कर सकते हैं, बशर्ते वह उपयोगकर्ता आपके ऐप को प्रमाणित करे।

कृपया ध्यान दें: यदि आप HMAC-SHA1 और percent encoding जैसी अवधारणाओं से परिचित नहीं हैं, तो हम अनुशंसा करते हैं कि आप नीचे दिए गए "उपयोगी टूल" अनुभाग को देखें, जिसमें कुछ API क्लाइंट सूचीबद्ध हैं जो प्रमाणीकरण प्रक्रिया को काफी सरल बना देते हैं।

<div id="key-concepts">
  ### मुख्य अवधारणाएँ
</div>

<div id="signing-a-request-with-keys-and-tokens">
  #### कुंजियों और टोकन के साथ अनुरोध पर हस्ताक्षर करना
</div>

आपको authorization header में जनरेट की गई कई कुंजियाँ और टोकन भेजकर हर API अनुरोध पर हस्ताक्षर करना होता है। शुरू करने के लिए, आप अपने [X डेवलपर ऐप के](/hi/resources/fundamentals/developer-apps) विवरण पेज पर कई कुंजियाँ और टोकन जनरेट कर सकते हैं, जिनमें निम्नलिखित शामिल हैं:

|                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| :-------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| API कुंजी और secret:<br /><br />`oauth_consumer_key`<br /><br />`oauth_consumer_secret` | इन्हें उस उपयोगकर्ता नाम और पासवर्ड की तरह समझें, जो API अनुरोध करते समय आपके X डेवलपर ऐप का प्रतिनिधित्व करते हैं।                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| एक्सेस टोकन और secret:<br /><br />`oauth_token`<br /><br />`oauth_token_secret`         | एक्सेस टोकन और एक्सेस टोकन secret, उपयोगकर्ता-विशिष्ट credentials हैं जिनका उपयोग OAuth 1.0a API अनुरोधों को प्रमाणित करने के लिए किया जाता है। ये बताते हैं कि अनुरोध किस X खाते की ओर से किया जा रहा है।<br /><br />अगर आप चाहते हैं कि आपका ऐप आपके डेवलपर खाते से जुड़े उसी X खाते की ओर से अनुरोध करे, तो आप \[X डेवलपर ऐप के]/resources/fundamentals/developer-apps) विवरण पेज पर अपना एक्सेस टोकन और टोकन secret खुद जनरेट कर सकते हैं।<br /><br />अगर आप किसी दूसरे उपयोगकर्ता के लिए एक्सेस टोकन जनरेट करना चाहते हैं, तो नीचे "उपयोगकर्ताओं की ओर से अनुरोध करना" देखें। |

<div id="making-requests-on-behalf-of-users">
  #### उपयोगकर्ताओं की ओर से अनुरोध करना
</div>

सिग्नेचर बनाते समय, आपको एक्सेस टोकन के ऐसे सेट की ज़रूरत होती है जो उस उपयोगकर्ता का प्रतिनिधित्व करता हो, जिसकी ओर से आप अनुरोध करने वाले हैं।

आप उस X खाते का प्रतिनिधित्व करने वाले एक्सेस टोकन का एक सेट [ऐप के विवरण पेज,](https://developer.x.com/content/developer-twitter/en/apps) से जनरेट कर सकते हैं जो X डेवलपर ऐप का मालिक है। लेकिन अगर आप किसी दूसरे X खाते की ओर से अनुरोध करना चाहते हैं, तो उस खाते के मालिक को [3-legged OAuth flow](/hi/resources/fundamentals/authentication#obtaining-access-tokens-using-3-legged-oauth-flow) के हिस्से के रूप में अपने खाते में साइन इन करके आपको एक्सेस देना होगा। इस प्रक्रिया के परिणामस्वरूप एक्सेस टोकन (oauth\_token and oauth\_token\_secret) का एक सेट मिलता है, जिसका उपयोग OAuth 1.0a अनुरोध करने के लिए किया जा सकता है।

जब आपके पास ये कुंजी और tokens हों, तो आप या तो शुरू से [सिग्नेचर बना](/hi/resources/fundamentals/authentication#creating-a-signature) सकते हैं। हम ऐसा करने की अनुशंसा नहीं करते, जब तक कि आपको ठीक-ठीक न पता हो कि आप क्या कर रहे हैं, या आप नीचे बताए गए किसी टूल का उपयोग ऐसे endpoint पर अनुरोध करने के लिए न कर रहे हों, जिसके लिए OAuth 1.0a आवश्यक है।

संदर्भ के लिए, यहां authorization header में पास किए गए सभी जनरेट किए गए tokens के साथ signed cURL request का एक उदाहरण दिया गया है:

```bash theme={null}
curl --request POST \
  --url 'https://api.x.com/1.1/statuses/update.json?status=Hello%20world' \
  --header 'authorization: OAuth oauth_consumer_key="CONSUMER_API_KEY", oauth_nonce="OAUTH_NONCE", oauth_signature="OAUTH_SIGNATURE", oauth_signature_method="HMAC-SHA1", oauth_timestamp="OAUTH_TIMESTAMP", oauth_token="ACCESS_TOKEN", oauth_version="1.0"' \
```

<Note>
  **नोट:** उपयोगकर्ता एक्सेस टोकन संवेदनशील होते हैं और इन्हें बहुत सावधानी से सुरक्षित रखा जाना चाहिए। जब एक्सेस टोकन जनरेट किए जाते हैं, तो जिस उपयोगकर्ता का वे प्रतिनिधित्व करते हैं, वह इस भरोसे के साथ आपकी ऐप को सौंपे गए इन token के सुरक्षित रहने की अपेक्षा करता है। यदि API कुंजी और उपयोगकर्ता एक्सेस टोकन, दोनों की सुरक्षा से समझौता हो जाता है, तो आपकी ऐप के माध्यम से निजी जानकारी और खाते की सुविधाओं तक पहुंच उजागर हो सकती है। हम आपको [कुंजी और एक्सेस टोकन को सुरक्षित रखने](/hi/resources/fundamentals/developer-apps) के बारे में और जानने के लिए प्रोत्साहित करते हैं।
</Note>

<div id="useful-tools">
  ### उपयोगी टूल
</div>

[किसी अनुरोध पर हस्ताक्षर करने](/hi/resources/fundamentals/authentication#creating-a-signature) की प्रक्रिया जटिल है। हम सलाह देते हैं कि आप ऐसी API क्लाइंट लाइब्रेरी का उपयोग करें, जो प्रमाणीकरण टोकन का बड़ा हिस्सा अपने-आप जनरेट कर दे:

|                                        |                                                                                                                                                                                                    |
| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Postman](https://www.getpostman.com/) | एक API क्लाइंट, जो आपको REST API अनुरोध बनाने और भेजने देता है। इस टूल के बारे में अधिक जानने के लिए हमारा “[Postman के साथ शुरुआत करना](/hi/tutorials/postman-getting-started)” ट्यूटोरियल पढ़ें। |
| [Insomnia](https://insomnia.rest/)     | Insomnia एक REST API Client है, जिसमें Mac, Windows, और Linux के लिए cookie management, environment variables, code generation, और authentication जैसी सुविधाएँ शामिल हैं।                         |
