मुख्य सामग्री पर जाएं
Didit JavaScript SDK आपको अपने वेब एप्लिकेशन में पहचान सत्यापन को प्रोग्रामैटिक तरीके से एकीकृत करने की सुविधा देता है, जिसमें उपयोगकर्ता अनुभव पर आपका पूरा नियंत्रण रहता है।

सुविधाएँ

  • सरल API - सिंगलटन पैटर्न के साथ आसानी से उपयोग होने वाली विधियाँ
  • लचीला एकीकरण - सीधे UniLink URL का उपयोग करें या बैकएंड के ज़रिए सत्र बनाएँ
  • प्रतिक्रियाशील - डेस्कटॉप और मोबाइल ब्राउज़र दोनों पर काम करता है
  • अनुकूलन योग्य - स्टाइलिंग और व्यवहार के लिए कॉन्फ़िगरेशन विकल्प
  • एकाधिक फ़ॉर्मेट - ESM, CommonJS और UMD बिल्ड
  • TypeScript सहायता - पूर्ण टाइप परिभाषाएँ शामिल हैं
  • मोडल और इनलाइन मोड - मोडल ओवरले या इनलाइन एम्बेडिंग में से चुनें
  • इवेंट कॉलबैक - सत्यापन की प्रगति के लिए रीयल-टाइम इवेंट (शुरू हुआ, चरण पूरा हुआ, समाप्त हुआ)
  • स्थिति प्रबंधन - कस्टम UI के लिए SDK की स्थिति देखें

इंस्टॉलेशन

NPM/Yarn

CDN (UMD)

npm पर प्रकाशित नवीनतम रिलीज़ 0.5.1 है। 0.5.0 ने DiditSdk.shared.submitEvent() जोड़ा (देखें इवेंट सबमिट करना), और 0.5.1 होस्टेड फ़्लो को SDK के भीतर डिजिटल ID वॉलेट से उपयोगकर्ता की ID माँगने देता है, और विफल लॉन्च को उसके errorMessage के साथ error स्थिति में रखता है। 0.4.0 ने वे कैमरा विकल्प जोड़े जो नेटिव SDK पहले से देते हैं, जिनमें defaultLivenessCamera भी शामिल है, जो चेहरे का कैप्चर पीछे वाले कैमरे पर खोलता है (देखें कैमरा विकल्प)।

इंस्टॉल किए गए संस्करण की जाँच करें

इंस्टॉल किए गए रिलीज़ के लिए आपका पैकेज मैनेजर ही अधिकृत स्रोत है:
आप रनटाइम एक्सपोर्ट भी देख सकते हैं:
संस्करण 0.3.1 से यह एक्सपोर्ट हर JavaScript फ़ॉर्मेट (ESM, CommonJS, UMD, minified UMD) और TypeScript डिक्लेरेशन में पैकेज के संस्करण से बनाया जाता है, इसलिए यह हमेशा इंस्टॉल किए गए रिलीज़ से मेल खाता है। 0.3.0 और उससे पहले के संस्करण इस एक्सपोर्ट से इंस्टॉल किए गए संस्करण की परवाह किए बिना 0.2.1 दिखाते हैं। उन रिलीज़ पर npm list या अपनी lockfile का उपयोग करें।

वेनिला JavaScript

ES Modules / TypeScript

स्क्रिप्ट टैग (UMD)


फ़्रेमवर्क उदाहरण

SDK वेब उदाहरण

React, Angular, Svelte, Next.js, Nuxt, Vue और अन्य, हर फ़्रेमवर्क के लिए उदाहरण और दस्तावेज़ के साथ।

इंटीग्रेशन के तरीके

SDK को एकीकृत करने के दो तरीके हैं: Didit Console से अपने वर्कफ़्लो का UniLink URL सीधे उपयोग करें। इसके लिए बैकएंड की आवश्यकता नहीं है।
Didit Console → आपका वर्कफ़्लो → लिंक कॉपी करें पर जाकर अपना UniLink URL प्राप्त करें। जनरेट किया गया session_id आपको एक इवेंट के ज़रिए भेजा जाएगा। इवेंट संदर्भ यहाँ देखें

तरीका 2: बैकएंड सत्र (प्रोडक्शन के लिए अनुशंसित)

आपका बैकएंड Didit API के ज़रिए सत्र बनाता है और होस्टेड सत्यापन URL लौटाता है। इससे आपको vendor_data, प्रति-सत्र callback और metadata पर नियंत्रण मिलता है, और आप उपयोगकर्ता के फ़्रंटएंड तक पहुँचने से पहले ही सत्र बना सकते हैं। अधिक जानकारी के लिए सत्र बनाने वाले API का संदर्भ पढ़ें। बैकएंड (Node.js / Express)
फ़्रंटएंड
सत्र-निर्माण रिस्पॉन्स में फ़ील्ड का नाम url है (देखें सत्र बनाने वाले OpenAPI स्कीमा)। इसे सीधे startVerification({ url }) को पास करें।

कॉन्फ़िगरेशन

पूर्ण DiditSdkConfiguration इंटरफ़ेस के लिए नीचे पूर्ण TypeScript टाइप परिभाषाएँ देखें।

कैमरा विकल्प

कैमरा विकल्पों के लिए @didit-protocol/sdk-web 0.4.0 या उसके बाद का संस्करण चाहिए।
वेब SDK में वही चार कैमरा विकल्प हैं जो नेटिव SDK में हैं। डिफ़ॉल्ट रूप से दस्तावेज़ कैप्चर रियर कैमरा खोलता है और चेहरा (लाइवनेस) कैप्चर फ़्रंट (सेल्फ़ी) कैमरा खोलता है। एक से ज़्यादा कैमरे वाले डिवाइस पर दोनों चरणों में कैप्चर के दौरान कैमरा बदलने का बटन भी मिलता है। चेहरा कैप्चर को रियर कैमरे पर खोलने के लिए defaultLivenessCamera: 'back' सेट करें। उदाहरण के लिए, किसी कियोस्क पर, या जब कोई ऑपरेटर डिवाइस पकड़कर सत्यापित किए जा रहे व्यक्ति की ओर करता है।
  • मान्य लेंस मान 'front' और 'back' हैं। कोई दूसरा मान अनदेखा किया जाता है, और जो स्विचर फ़्लैग बूलियन नहीं है, वह भी अनदेखा किया जाता है।
  • जिस डिवाइस में माँगा गया कैमरा नहीं है, वह अपना मौजूदा कैमरा ही इस्तेमाल करता है। उदाहरण के लिए, 'back' माँगने पर लैपटॉप अपना वेबकैम ही इस्तेमाल करेगा। एक-कैमरा वाले डिवाइस पर स्विचर फ़्लैग चाहे जो भी हों, स्विचर छिपा रहता है।
  • लाइवनेस विकल्प पैसिव लाइवनेस जाँच पर लागू होते हैं। एक्टिव लाइवनेस पर इनका कोई असर नहीं पड़ता।
  • SDK ये विकल्प सत्यापन URL के क्वेरी पैरामीटर के रूप में सत्यापन पेज तक भेजता है: document_camera, liveness_camera, document_camera_switch और liveness_camera_switch। अगर आप SDK के बजाय सत्यापन URL सीधे खोलते हैं, तो इन्हें खुद सेट करें: बिना क्वेरी स्ट्रिंग वाले URL में ?liveness_camera=back जोड़ें, और जिस URL में पहले से पैरामीटर हैं उसमें &liveness_camera=back जोड़ें। या URL API से सेट करें, जिससे दोनों स्थितियाँ अपने आप संभल जाएँ:

इवेंट सबमिट करें

DiditSdk.shared.submitEvent() अंतिम उपयोगकर्ता के इवेंट (साइन-अप, लॉगिन, विफल लॉगिन, लॉगआउट, पासवर्ड रीसेट, MFA, डिवाइस बदलना) को Didit की इवेंट निगरानी के लिए कतार में रखता है। आपका बैकएंड व्यक्ति के लिए एक निगरानी टोकन बनाता है, और SDK डिवाइस फ़िंगरप्रिंट के साथ इवेंट बैच में भेजता है। कभी भी API कुंजी ब्राउज़र तक न भेजें।
टोकन, इवेंट फ़ील्ड और डिलीवरी के व्यवहार के लिए SDK इवेंट सबमिशन देखें।

मोडल का आकार और स्क्रॉलिंग

नीचे दिया गया आकार-व्यवहार 0.3.1 या उसके बाद के संस्करण में चाहिए। 0.3.0 और उससे पहले के संस्करण छोटे डेस्कटॉप और लैंडस्केप व्यूपोर्ट पर सत्यापन फ़्लो को काट सकते हैं।
मोडल मोड में अधिकतम चौड़ाई 500px और अधिकतम ऊँचाई 700px होती है। छोटे डेस्कटॉप और लैंडस्केप व्यूपोर्ट पर iframe दिखने वाले व्यूपोर्ट के 90% तक फैलता है। सत्यापन फ़्लो iframe के भीतर स्क्रॉल होता है, इसलिए हर चरण तक पहुँचा जा सकता है, जबकि मोडल के पीछे का पेज लॉक रहता है। SDK डायनामिक व्यूपोर्ट यूनिट वाले ब्राउज़र पर dvh का उपयोग करता है, और पुराने समर्थित ब्राउज़र पर vh पर लौट आता है। 540px और उससे कम चौड़ाई पर मोडल दिखने वाले व्यूपोर्ट को पूरी तरह भर देता है। क्लोज़ बटन और बाहर निकलने की पुष्टि मोडल के भीतर ही रहते हैं।

नए डिज़ाइन वाला सत्यापन फ़्लो

इस सेक्शन की सभी बातें संस्करण 0.5.0 से लागू होती हैं, जो अभी प्रकाशित नहीं हुआ है। अपग्रेड करने तक मोडल ऊपर बताए आकार पर ही रहता है।
संस्करण 0.5.0 से, पेज जब didit:layout मैसेज के ज़रिए अपना लेआउट बताता है, तब मोडल नए डिज़ाइन वाले सत्यापन फ़्लो के हिसाब से अपना आकार तय करता है:
  • शुरुआती आकार, संस्करण 0.5.0 से: जब तक पेज अपना लेआउट नहीं बताता, और जो पेज कभी नहीं बताते उनके लिए, मोडल 500px बाय 700px की मौजूदा अधिकतम सीमा पर रहता है। यह छोटी विंडो में भी फिट रहता है और 540px या उससे कम पर पूरी स्क्रीन रहता है।
  • क्लोज़ बटन, संस्करण 0.5.0 से: पेज की शीर्ष पट्टी के ऊपर 44px का गोल बटन। यह पेज की लाइट या डार्क थीम के अनुसार चलता है, और दाएँ-से-बाएँ भाषाओं में बाईं ओर चला जाता है।
  • एम्बेडेड मोड, संस्करण 0.5.0 से: पहले की तरह यह अपने होस्ट एलिमेंट को भरता रहता है (देखें एम्बेडेड मोड)।
  • सत्यापन URL, संस्करण 0.5.0 से: SDK sdk_presentation (modal या embedded) जोड़ता है और मोडल में sdk_close_button (true या false, जो showCloseButton के अनुसार होता है) जोड़ता है, ताकि पेज को पता रहे कि वह कैसे दिखाया जा रहा है।
  • इवेंट, संस्करण 0.5.0 से: SDK didit:layout को खुद संभालता है और उसे onEvent तक नहीं भेजता।
इसे कॉन्फ़िगर करने की ज़रूरत नहीं है, और मौजूदा हर विकल्प पहले की तरह काम करता रहता है।

एम्बेडेड मोड

एम्बेडेड मोड में मोडल की 500px बाय 700px की सीमा लागू नहीं होती। SDK होस्ट एलिमेंट के कंटेंट बॉक्स को भरता है, इसलिए उस एलिमेंट को स्पष्ट या किसी अन्य तरीके से हल होने वाली ऊँचाई दें:
अगर होस्ट की कोई हल होने वाली ऊँचाई नहीं है, तो एम्बेडेड iframe की भी कोई उपयोगी ऊँचाई नहीं होगी। जब आपका लेआउट बदले, तब होस्ट का आकार बदलें; SDK उसे अपने आप भरता रहता है।

सत्यापन परिणाम

SDK तीन प्रकार के परिणाम लौटाता है:

पूर्ण

सत्यापन फ़्लो पूरा हो गया (स्वीकृत, लंबित, या अस्वीकृत)।
TypeScript टाइप 'Approved' | 'Pending' | 'Declined' घोषित करता है, लेकिन यह मान होस्टेड फ़्लो के सत्र की स्थिति से जस का तस आता है, इसलिए आपको In Review जैसी अन्य स्थितियाँ भी मिल सकती हैं। जब फ़्लो ने कोई स्थिति नहीं भेजी, तब Pending SDK का डिफ़ॉल्ट मान होता है। status को केवल एक संकेत मानें और अंतिम निर्णय के लिए webhook पर भरोसा करें।

रद्द

उपयोगकर्ता ने सत्यापन मोडल बंद कर दिया। जब sessionId पहले से ज्ञात हो, तब session शामिल होता है (यदि उपयोगकर्ता ने iframe द्वारा उसे रिपोर्ट करने से पहले रद्द किया हो, तो यह undefined हो सकता है)।

विफल

सत्यापन के दौरान एक त्रुटि हुई।

स्टेट प्रबंधन

आप कस्टम UI के लिए SDK की स्थिति देख सकते हैं:

API संदर्भ

DiditSdk.shared

सिंगलटन SDK इंस्टेंस।

मेथड

प्रॉपर्टी

कॉलबैक


विस्तृत इवेंट

onEvent कॉलबैक से सत्यापन की प्रगति पर नज़र रखें:

इवेंट संदर्भ

कनेक्शन टूटना

अगर उपयोगकर्ता का कनेक्शन टूट जाता है, तो सत्यापन पेज किसी चरण को लोड होता छोड़ने के बजाय “No internet connection” स्क्रीन से पूरे फ़्लो को ढक देता है। यह पृष्ठभूमि में लगातार जाँच करता रहता है और Didit से दोबारा संपर्क होते ही स्क्रीन अपने-आप बंद कर देता है, और उपयोगकर्ता जिस चरण पर था वहीं से आगे बढ़ता है। SDK के मोडल या iframe के अंदर यह स्क्रीन Exit Verification का विकल्प भी देती है: तब पेज error: "network_error" के साथ didit:error भेजता है, उसके बाद didit:cancelled भेजता है, और SDK मोडल बंद करके type: "cancelled" के साथ onComplete कॉल करता है। संस्करण 0.5.0 से, पेज का didit:layout मैसेज मोडल का आकार तय करता है और onEvent तक नहीं पहुँचता। अगर आप पेज को अपने iframe में एम्बेड करते हैं, तो didit:layout से iframe का आकार तय करें देखें।

चरण के मान

step फ़ील्ड इनमें से कोई एक हो सकता है:
  • document_selection - दस्तावेज़ प्रकार का चयन
  • document_front - दस्तावेज़ का सामने वाला हिस्सा
  • document_back - दस्तावेज़ का पीछे वाला हिस्सा
  • face - चेहरा/लाइवनेस सत्यापन
  • email - ईमेल सत्यापन
  • phone - फ़ोन सत्यापन
  • poa - पते का प्रमाण
  • questionnaire - प्रश्नावली चरण

चैनल के मान

code_sent में channel फ़ील्ड इनमें से कोई एक हो सकता है:
  • email - कोड ईमेल से भेजा गया
  • sms - कोड SMS से भेजा गया
  • whatsapp - कोड WhatsApp से भेजा गया

कोड का आकार

code_sent में codeSize फ़ील्ड OTP कोड की लंबाई बताता है (जैसे 4 या 6 अंक)।

TypeScript प्रकार

अंतिम संशोधन 7 नवंबर 2026