प्रमाणीकरण स्ट्रिंग जनरेट करें (REST API)

अंतिम अपडेट: 31 मार्च 2025

कुछ REST एंडपॉइंट संवेदनशील ऑपरेशन करने की अनुमति देते हैं जैसे ऑर्डर देना या डिजिटल एसेट निकासी का अनुरोध करना। इसलिए इन निजी एंडपॉइंट्स को केवल एन्क्रिप्टेड अनुरोधों के माध्यम से कॉल किया जा सकता है और प्रत्येक ऐसे अनुरोध में एक प्रमाणीकरण स्ट्रिंग (authent) शामिल होनी चाहिए। authent की गणना निम्नलिखित इनपुट से की जाती है:

पोस्टडेटा

postData "&" के रूप में एक संयोजन है <argument>=<value> और प्रत्येक REST एंडपॉइंट के लिए विशिष्ट है।

उदाहरण

एंडपॉइंट ऑर्डरबुक को संचालित करने के लिए आप मान के साथ तर्क प्रतीक चुनते हैं
fi_xbtusd_180615। postData फिर symbol=fi_xbtusd_180615 द्वारा दिया जाता है।

v3 एंडपॉइंट्स के लिए प्रमाणीकरण प्रवाह अपडेट करें: 20 फरवरी 2024 तक, सर्वोत्तम प्रथाओं के साथ संरेखित होने और उच्च सुरक्षा मानक सुनिश्चित करने के लिए, हम अपने /derivatives/* (v3) एंडपॉइंट्स के लिए प्रमाणीकरण प्रवाह को अपडेट करने जा रहे हैं। (विवरण नीचे)

पोस्टडेटा जनरेशन में बदलाव:


- रिलीज़ से पहले: उपयोगकर्ताओं को Authent जनरेशन के लिए url-एन्कोडिंग से पहले क्वेरी स्ट्रिंग पैरामीटर को हैश करना आवश्यक था, उदा., `greeting=hello world`।


- रिलीज़ के बाद: प्रमाणीकरण प्रक्रिया के लिए अब अनुरोध में दिखाई देने वाले पूर्ण, url-एन्कोडेड URI घटक को हैश करना आवश्यक होगा, उदा., `greeting=hello%20world`। यह विधि सुरक्षा को बढ़ाती है और सर्वोत्तम प्रथाओं के साथ संरेखित होती है।
यह अपडेट विशेष रूप से v3 बैचऑर्डर एंडपॉइंट के लिए प्रासंगिक है, जो अपने क्वेरी पैरामीटर में एक JSON बॉडी स्वीकार करता है।


पिछली संगतता और भविष्य की योजनाएँ:


फिलहाल, यह बदलाव पिछली संगतता रखता है। प्लेटफ़ॉर्म ऊपर वर्णित दोनों पोस्टडेटा जनरेशन विधियों को स्वीकार करेगा। हालांकि, हम भविष्य में उच्चतम सुरक्षा मानकों को बनाए रखने के लिए पुरानी विधि (डिकोड किए गए क्वेरी स्ट्रिंग पैरामीटर को हैश करना) को चरणबद्ध तरीके से समाप्त करने का लक्ष्य रखते हैं। हम इस बदलाव से पहले पर्याप्त सूचना प्रदान करेंगे और सभी उपयोगकर्ताओं को निर्बाध सेवा निरंतरता सुनिश्चित करने के लिए जल्द से जल्द नई विधि में संक्रमण करने के लिए दृढ़ता से प्रोत्साहित करते हैं।

नॉनस

nonce एक लगातार बढ़ता हुआ पूर्णांक पैरामीटर है। एक अच्छा nonce आपके सिस्टम का समय मिलीसेकंड में (स्ट्रिंग प्रारूप में) होता है। हमारा सिस्टम थोड़े समय के लिए अव्यवस्थित nonces को सहन करता है। Nonce आवश्यक नहीं है।

उदाहरण 1415957147987

कई प्रमाणीकरण संबंधी समस्याएँ गलत नॉनस से संबंधित हैं। API कुंजियों का एक नया जोड़ा स्वचालित रूप से नॉनस को रीसेट कर देगा और इन समस्याओं को हल कर देगा।

एंडपॉइंट पाथ

endpointPath यह एंडपॉइंट का URL एक्सटेंशन है।

उदाहरण /api/v3/orderbook

API सीक्रेट

api_secret पिछले अनुभाग में वर्णित अनुसार प्राप्त किया जाता है।

उदाहरण

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

इन इनपुट के आधार पर, प्रमाणीकरण (authent) की गणना इस प्रकार की जानी चाहिए:

  1. 1

    जोड़ें

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    चरण 1 के परिणाम को SHA-256 एल्गोरिथम से हैश करें

  3. 3

    अपनी api_secret को Base64-डीकोड करें

  4. 4

    चरण 3 के परिणाम का उपयोग करके चरण 2 के परिणाम को HMAC-SHA-512 एल्गोरिथम से हैश करें

  5. 5

    चरण 4 के परिणाम को Base64-एन्कोड करें

उदाहरण

निम्नलिखित जावा में प्रमाणीकरण (authent) का एक कार्यान्वयन दिखाता है। विभिन्न प्रोग्रामिंग भाषाओं में पूर्ण कार्यशील उदाहरणों के लिए, अनुभाग अतिरिक्त संसाधन देखें। public static String getAuthent(String postData, String nonce, String endpointPath, String secretKeyBase64)
{
Mac mac512;
MessageDigest sha256;
try {
SecretKey secretKey = new SecretKeySpec 
(Base64.decode(secretKeyBase64.getBytes()), HMAC_SHA-512);
mac512 = Mac.getInstance(HMAC_SHA-512);
mac512.init(secretKey);
sha256 = MessageDigest.getInstance("SHA-256");
} catch (IOException e) {
...
} catch (InvalidKeyException e) {
...
} catch (NoSuchAlgorithmException e) {
...
} sha256.update(postData.getBytes());
sha256.update(nonce.getBytes());
sha256.update(endpointPath.getBytes());
mac512.update(sha256.digest());
return Base64.encodeBytes(mac512.doFinal()).trim();
}

क्या आपको और मदद चाहिए?