PUT methods/{name}/ और {"enabled": true} भेजकर कोई तरीका चालू करें, या कंसोल से चालू करें। होस्टेड साइन-इन में केवल वही तरीके दिखते हैं जो आपने चालू किए हैं।
नीचे दी गई हर JSON कॉल
POST authorize/ से मिले transaction से शुरू होती है। वह लेन-देन 10 मिनट तक मान्य रहता है। सफल साइन-इन {code, redirect_uri, state} लौटाता है। कोड को 60 सेकंड के भीतर POST token/ पर बदलें (देखें token और JWKS)।
कोड मिलने के बजाय, साइन-इन कॉल इनमें से कोई चरण लौटा सकती है। वह चरण पूरा करें, तभी आपको कोड मिलेगा।
पासवर्ड
POST password/ में transaction, email और password भेजे जाते हैं।
- पासवर्ड आपकी
password_min_lengthसीमा (8, 10, 12 या 14 अक्षर; डिफ़ॉल्ट 10) पर खरा उतरना चाहिए। आम और केवल संख्याओं वाले पासवर्डpassword_policyके साथ अस्वीकार किए जाते हैं। जब लीक पासवर्ड जाँच चालू हो, तो ज्ञात लीक पासवर्डpassword_breachedके साथ अस्वीकार किया जाता है। - केवल सत्यापित ईमेल वाले लोग पासवर्ड से साइन इन कर सकते हैं।
- गलत पासवर्ड, अज्ञात ईमेल, असत्यापित ईमेल, लॉक किया हुआ खाता और ब्लॉक किया हुआ खाता, सभी को एक ही उत्तर मिलता है:
400 {"error": "invalid_credentials"}। आपका UI यह नहीं बता सकता कि असल में कौन-सी स्थिति थी, और कोई हमलावर भी नहीं बता सकता।
साइन-अप
साइन-अप में पहले ईमेल सत्यापित होता है।purpose: "signup", email और password के साथ POST email/start/ कॉल करें, फिर कोड के साथ POST email/complete/ कॉल करें। खाता सत्यापित ईमेल के साथ बनता है।
signup_policyतय करती है कि साइन-अप कौन कर सकता है:anyone,invited(केवल आमंत्रण लिंक के साथ) याallowed_domains।allow_subaddresses: false(डिफ़ॉल्ट) होने पर, स्थानीय भाग में+वाला पता अस्वीकार किया जाता है।- जब आपकी ब्रांडिंग में शर्तों या गोपनीयता लिंक सेट हों, तो होस्टेड साइन-अप फ़ॉर्म व्यक्ति से उन्हें स्वीकार करने को कहता है।
ईमेल कोड
POST email/start/ में transaction, purpose (login या signup) और email भेजे जाते हैं, और यह 202 {challenge, expires_in: 600} लौटाता है। व्यक्ति को 10 मिनट तक मान्य 6 अंकों का कोड मिलता है।
POST email/complete/ में transaction, purpose, challenge और code भेजे जाते हैं। आपको 5 प्रयास मिलते हैं, उसके बाद व्यक्ति को नया कोड माँगना होगा। होस्टेड पेज 30 सेकंड बाद नया कोड देने की पेशकश करता है।
ऐसे पते के लिए लॉगिन कोड जिसका खाता नहीं है, अगर आपकी signup_policy इसकी अनुमति देती है तो खाता बना देता है। यह बिना पासवर्ड वाला साइन-अप है।
मैजिक लिंक
होस्टेड पेज 15 मिनट तक मान्य एक साइन-इन लिंक भेजता है। यह मूल PKCE लेन-देन से जुड़ा रहता है, इसलिए लिंक केवल उसी फ़्लो में काम करता है जिसने उसे शुरू किया था। जिस पेज को लिंक खोलता है, उस पर व्यक्ति साइन-इन की पुष्टि करता है। मैजिक लिंक के लिए कोई JSON endpoint नहीं है।फ़ोन कोड
POST phone/start/ में transaction, phone और वैकल्पिक channel (sms, डिफ़ॉल्ट, या whatsapp) भेजे जाते हैं। नंबर को E.164 में सामान्य किया जाता है। यह 202 {challenge, expires_in: 600} लौटाता है।
POST phone/complete/ में transaction, challenge और 6 अंकों का code भेजे जाते हैं। आपको 5 प्रयास मिलते हैं।
- फ़ोन कोड Didit के फ़ोन सत्यापन से भेजे जाते हैं। इस तरीके को उस वर्कफ़्लो के
workflow_idके साथ चालू करें जिसमें फ़ोन सत्यापन शामिल हो। - फ़ोन से पहली बार साइन-इन तभी खाता बनाता है जब
signup_policyanyoneहो। - अगर डिलीवरी विफल हो, तो कॉल
503 {"error": "delivery_unavailable"}लौटाती है।
पासकी
पासकी WebAuthn का उपयोग करती हैं। रिलाइंग पार्टी आपके एप्लिकेशन का साइन-इन मूल-स्थान है। Didit डिस्कवर करने योग्य क्रेडेंशियल (रेज़िडेंट कुंजी) माँगता है और हमेशा उपयोगकर्ता सत्यापन की ज़रूरत रखता है, जैसे फ़िंगरप्रिंट, चेहरा या डिवाइस PIN। Didit अटेस्टेशन नहीं माँगता।- पासकी चुनौती 5 मिनट तक मान्य रहती है।
- पासकी जोड़ने के लिए 5 मिनट के भीतर बना सत्र चाहिए। अन्यथा कॉल
403 {"error": "reauthentication_required"}लौटाती है। पहले व्यक्ति को दोबारा साइन इन कराएँ। - पासकी से साइन-इन को मल्टी-फ़ैक्टर माना जाता है।
- साइन-अप के बाद होस्टेड पेज पासकी जोड़ने की पेशकश करता है (
passkeys/setup/begin/औरpasskeys/setup/complete/)। - एप्लिकेशन में पंजीकृत Android ऐप्स वही पासकी इस्तेमाल कर सकते हैं।
सोशल साइन-इन
Google, Microsoft, Apple और GitHub से साइन-इन के लिए आप अपने OAuth ऐप के क्रेडेंशियल का उपयोग करते हैं, जिन्हेंPUT methods/{provider}/ और credentials: {client_id, client_secret} से सेट किया जाता है। प्रोवाइडर का कॉलबैक आपके साइन-इन ओरिजिन पर होता है।
किसी व्यक्ति का किसी प्रोवाइडर से पहली बार साइन-इन करने पर उसे कोड के साथ यह भी साबित करना होता है कि ईमेल पता उसी का है (POST social/email/start/ और POST social/email/verify/)। उस प्रोवाइडर से बाद के साइन-इन में यह चरण छोड़ दिया जाता है।
GitHub हाल के साइन-इन को साबित नहीं कर सकता, इसलिए जब आप prompt=login या max_age भेजते हैं तो यह विकल्प उपलब्ध नहीं होता।
संगठन SSO
संगठन SSO किसी ग्राहक की कंपनी को उसके अपने SAML या OIDC आइडेंटिटी प्रोवाइडर के जरिए साइन-इन करने देता है। इसे हर ग्राहक संगठन के लिएorganizations/{id}/sso/ पर protocol (saml या oidc), enabled और config के साथ कॉन्फ़िगर करें।
- आप ग्राहक की IT टीम को 7 दिन तक वैध सेटअप लिंक भेज सकते हैं।
- आपका SAML सर्विस प्रोवाइडर मेटाडेटा
{origin}/sso/saml/metadata/पर प्रकाशित होता है। - होस्टेड साइन-इन व्यक्ति के सत्यापित ईमेल डोमेन से, या साइन-इन URL पर
organization=<slug>से कनेक्शन खोजता है।
Didit ID Wallet
जो लोग पहले से Didit के साथ सत्यापन कर चुके हैं, वे अपने Didit ID Wallet से साइन-इन कर सकते हैं। यह विधि हमेशा चालू रहती है। इसके बाद सत्र कीverified_identity में वही जानकारी होती है जो व्यक्ति ने साझा करना चुना है।
MFA
दूसरा फ़ैक्टर ऑथेंटिकेटर ऐप (TOTP) है, जिसके साथ रिकवरी कोड मिलते हैं, या पासकी।mfa_policyतय करती है कि MFA किसे अनिवार्य रूप से इस्तेमाल करना होगा:optional,everyoneयाorganization_admins(डिफ़ॉल्ट)। जिसने ऑथेंटिकेटर का नामांकन किया है, उसे हमेशा इसका इस्तेमाल करना होगा।- ऑथेंटिकेटर नामांकित करने के लिए ताज़ा सत्र (5 मिनट के भीतर बना हुआ) के साथ
POST mfa/enroll/कॉल करें। यह{challenge, uri}लौटाता है;uriको QR कोड के रूप में दिखाएँ। फिर पहला कोडPOST mfa/confirm/पर भेजें। रिस्पॉन्स में 10 ऐसे रिकवरी कोड जिनका केवल एक बार इस्तेमाल किया जा सकता है होते हैं। इन्हें केवल एक बार दिखाएँ। - साइन-इन के समय
challengeके साथ TOTP या रिकवरी कोडPOST mfa/complete/पर भेजें। आपको 5 प्रयास मिलते हैं। इसके बजाय पासकी इस्तेमाल करने के लिएPOST mfa/passkey/begin/औरPOST mfa/passkey/complete/कॉल करें। - कोड 30-सेकंड के चरणों पर आधारित होते हैं। जो कोड पहले ही स्वीकार हो चुका है, उसे दोबारा इस्तेमाल नहीं किया जा सकता।
- SMS और ईमेल कोड दूसरे फ़ैक्टर के रूप में उपलब्ध नहीं हैं।
पासवर्ड भूलना और रीसेट करना
POST password-reset/start/ email लेता है और 202 {"status": "sent", "expires_in": 1800} लौटाता है। पता किसी खाते से जुड़ा हो या न हो, जवाब एक जैसा रहता है। रीसेट लिंक 30 मिनट तक वैध रहता है।
POST password-reset/complete/ token और password लेता है और {"status": "password_changed"} लौटाता है। यह निम्नलिखित भी करता है:
- लॉकआउट साफ़ करता है,
revoke_on_password_changeचालू होने पर (डिफ़ॉल्ट रूप से चालू) हर सत्र समाप्त कर देता है,- उस व्यक्ति के बाकी लंबित कोड और लिंक अमान्य कर देता है।
आमंत्रण
signup_policy: "invited" के साथ केवल आमंत्रित लोग साइन अप कर सकते हैं। आमंत्रण लिंक 7 दिन तक वैध रहता है और होस्टेड /invite पेज खोलता है।
टोकन और JWKS के साथ जारी रखें, या लॉकआउट और चुनौतियों के लिए बॉट सुरक्षा पढ़ें।