> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# प्रमाणीकरण: एंड-यूज़र साइन-इन, पासकी और सत्र

> Didit के साथ होस्टेड पेज, पासकी, कोड, सोशल और SSO से एंड-यूज़र साइन-इन जोड़ें, और इसे पहचान सत्यापन व लेन-देन निगरानी से जोड़ें।

> [!WARNING]
>
> प्रमाणीकरण नई सुविधा है। Didit आपके एप्लिकेशन के लिए इसे चालू करता है। तब तक, उस एप्लिकेशन के हर रनटाइम रूट से `404` लौटता है। Authentication SDK पैकेज अभी प्रकाशित नहीं हुए हैं, इसलिए इन पेजों पर दिए होस्टेड फ़्लो और HTTP कॉन्ट्रैक्ट का उपयोग करें।

प्रमाणीकरण आपके ग्राहकों को **आपके एप्लिकेशन** में साइन-इन कराता है। यह Didit कंसोल में साइन-इन करने या Didit डेवलपर खाता बनाने से अलग है। यह किसी व्यक्ति की पहचान सत्यापित करने से भी अलग है।

Authentication को अकेले उपयोग करें, या इसे पहचान सत्यापन और लेन-देन निगरानी के साथ जोड़ें। साइन-इन करने से कोई सत्यापन स्वीकृत नहीं होता और न ही कोई भुगतान अधिकृत होता है। हर उत्पाद के अपने परिणाम के आधार पर आपका बैकएंड ये निर्णय लेता है।

## यह कैसे काम करता है

हर एप्लिकेशन को अपना साइन-इन ओरिजिन और अपना token इश्यूअर मिलता है। लाइव और सैंडबॉक्स एप्लिकेशन अलग-अलग होते हैं: उनके ओरिजिन, सेटिंग्स और पहचान अलग होती हैं।

| आइटम | मान |
| - | - |
| डिफ़ॉल्ट ओरिजिन | लाइव एप्लिकेशन के लिए `https://<slug>.auth.didit.me`, सैंडबॉक्स एप्लिकेशन के लिए `https://<slug>.sandbox.auth.didit.me`। कंसोल में आपका ओरिजिन दिखता है। एक सत्यापित कस्टम डोमेन इसकी जगह ले सकता है। |
| होस्टेड पेज | उस ओरिजिन पर `/sign-in`, `/magic`, `/invite` और `/reset`। |
| रनटाइम API | वही ओरिजिन, उदाहरण के लिए `POST {origin}/token/` और `GET {origin}/session/`। |
| इश्यूअर | ओरिजिन स्वयं। डिस्कवरी `{origin}/.well-known/openid-configuration` पर है। |
| पब्लिशेबल की | `pk_live_...` या `pk_test_...`। यह एप्लिकेशन की पहचान करती है, यह कोई सीक्रेट नहीं है। |

फ़्लो OAuth 2.0 ऑथराइज़ेशन कोड है, जिसमें PKCE (केवल `S256`) का उपयोग होता है:

1. आपका एप्लिकेशन `redirect_uri`, `state`, `code_challenge` और `code_challenge_method=S256` के साथ `{origin}/sign-in` खोलता है।
2. होस्टेड पेज उन तरीकों से व्यक्ति को साइन-इन या साइन-अप कराता है जो आपने चालू किए हैं, जिसमें कोई आवश्यक दूसरा कारक भी शामिल है।
3. ब्राउज़र `code` और `state` के साथ आपके `redirect_uri` पर लौटता है।
4. आपका एप्लिकेशन `POST {origin}/token/` पर कोड को एक्सेस टोकन, ID टोकन और रीफ़्रेश टोकन के लिए बदलता है।

टोकन कॉन्ट्रैक्ट के लिए [टोकन और JWKS](https://docs.didit.me/hi/authentication/tokens-and-jwks.md) देखें, और हर तरीके के लिए [साइन-इन विधियाँ](https://docs.didit.me/hi/authentication/sign-in-methods.md) देखें।

## अपना प्लेटफ़ॉर्म चुनें

> [card] [JavaScript](https://docs.didit.me/hi/authentication/quickstarts/javascript.md)
>
> होस्टेड साइन-इन, कॉलबैक, सत्र और लॉगआउट।

> [card] [React](https://docs.didit.me/hi/authentication/quickstarts/react.md)
>
> क्लाइंट स्टेट और सुरक्षित एप्लिकेशन व्यू।

> [card] [Next.js](https://docs.didit.me/hi/authentication/quickstarts/nextjs.md)
>
> सर्वर सत्र, कॉलबैक रूट और कुकीज़।

> [card] [iOS](https://docs.didit.me/hi/authentication/quickstarts/ios.md)
>
> सिस्टम ब्राउज़र और सुरक्षित token स्टोरेज।

> [card] [Android](https://docs.didit.me/hi/authentication/quickstarts/android.md)
>
> ब्राउज़र प्राधिकरण और ऐप कॉलबैक।

> [card] [React Native](https://docs.didit.me/hi/authentication/quickstarts/react-native.md)
>
> नेटिव प्रमाणीकरण रैपर की तैयारी।

> [card] [Flutter](https://docs.didit.me/hi/authentication/quickstarts/flutter.md)
>
> नेटिव प्रमाणीकरण रैपर की तैयारी।

## अपने एप्लिकेशन की तैयारी करें

1. Didit से कहें कि आपके एप्लिकेशन के लिए Authentication चालू करे। पहले सैंडबॉक्स एप्लिकेशन में परीक्षण करें।
2. अपने सटीक [रीडायरेक्ट URL](#रीडायरेक्ट-url) (अधिकतम 50) और ब्राउज़र `allowed_origins` (अधिकतम 50) पंजीकृत करें, जिनसे रनटाइम API को कॉल किया जाता है।
3. वे [साइन-इन विधियाँ](https://docs.didit.me/hi/authentication/sign-in-methods.md) चालू करें जो आप देना चाहते हैं। Didit ID Wallet हमेशा चालू रहता है।
4. अपनी सत्र और पासवर्ड सेटिंग्स चुनें (नीचे देखें)।
5. लाइव जाने से पहले साइन-अप, साइन-इन, पासवर्ड भूल जाने की प्रक्रिया, MFA, सत्र समाप्ति और लॉगआउट का परीक्षण करें।

पासकी अपने ओरिजिन से जुड़ी होती है। यदि आप बाद में कस्टम डोमेन सक्रिय करते हैं, तो लोगों को अपनी पासकी फिर से पंजीकृत करनी होगी।

## रीडायरेक्ट URL

Didit किसी व्यक्ति को केवल उसी पते पर लौटाता है जिसे आपने पंजीकृत किया है।
इसे कंसोल में **Authentication > Security and sessions > Redirect URLs and allowed origins** के अंतर्गत पंजीकृत करें।

साइन-इन अनुरोध में `redirect_uri` को पंजीकृत URL से अक्षर-दर-अक्षर मेल खाना चाहिए: स्कीम, होस्ट, पोर्ट, पाथ और क्वेरी। अलग पोर्ट, अंत में स्लैश, या अक्षरों का अलग केस, ये सब अलग पते माने जाते हैं।

| एप्लिकेशन | आप क्या पंजीकृत कर सकते हैं |
| - | - |
| लाइव | `https://` URL |
| सैंडबॉक्स | `https://` URL, और `localhost`, `127.0.0.1` या `[::1]` पर `http://` URL |

वाइल्डकार्ड, फ़्रैगमेंट, URL में क्रेडेंशियल और कस्टम स्कीम अस्वीकार किए जाते हैं।

जब कोई पता पंजीकृत नहीं होता, तब Didit कभी उस पर रीडायरेक्ट नहीं करता।
`{origin}/sign-in` `400` रिस्पॉन्स के साथ ऐसा पेज लौटाता है जो बताता है कि क्या और कहाँ पंजीकृत करना है, और `POST {origin}/authorize/` `400 {"error": "invalid_redirect_uri"}` लौटाता है।

### लोकल डेवलपमेंट

अपनी मशीन पर अपने सैंडबॉक्स एप्लिकेशन के साथ परीक्षण करें:

1. अपना कॉलबैक उसके पोर्ट के साथ पंजीकृत करें, उदाहरण के लिए `http://localhost:3000/auth/callback`।
2. यदि ब्राउज़र कोड रनटाइम API को कॉल करता है, उदाहरण के लिए `POST {origin}/token/` पर कोड बदलने के लिए, तो ओरिजिन को **अनुमत स्रोत** में भी जोड़ें: `http://localhost:3000`, बिना पाथ और बिना अंत के स्लैश के।
3. अपने `pk_test_...` key के साथ, अपने सैंडबॉक्स ओरिजिन `https://<slug>.sandbox.auth.didit.me` पर साइन-इन शुरू करें।

`localhost`, `127.0.0.1` और `[::1]` अलग-अलग पते हैं, और हर पोर्ट भी अलग है।
आप जितने भी पते उपयोग करते हैं, उन्हें अलग-अलग पंजीकृत करें।

लाइव एप्लिकेशन कभी `http://` स्वीकार नहीं करते।
लाइव जाने से पहले, अपने लाइव एप्लिकेशन पर अपना प्रोडक्शन `https://` कॉलबैक पंजीकृत करें।

## एप्लिकेशन सेटिंग्स

आप ये सेटिंग्स कंसोल में, या `write:authentication` वाले अधिकृत कंसोल सत्र से प्रबंधित करते हैं।

| सेटिंग | मान | डिफ़ॉल्ट |
| - | - | - |
| `session_lifetime` | `86400`, `604800`, `2592000`, `7776000` सेकंड | `2592000` (30 दिन) |
| `idle_timeout` | `1800`, `7200`, `86400`, `604800` सेकंड | `86400` (1 दिन) |
| `multiple_sessions` | `false` का अर्थ है कि हर नए साइन इन पर व्यक्ति अपने अन्य सत्रों से साइन आउट हो जाता है | `true` |
| `password_min_length` | `8`, `10`, `12`, `14` | `10` |
| `revoke_on_password_change` | पासवर्ड रीसेट के बाद हर सत्र समाप्त करता है | `true` |
| `signup_policy` | `anyone`, `invited`, `allowed_domains` (`allowed_email_domains` के साथ, अधिकतम 100) | `anyone` |
| `allow_subaddresses` | ईमेल के लोकल पार्ट में `+` स्वीकार करता है | `false` |
| `post_logout_redirect_uri` | साइन आउट के बाद आपका एप्लिकेशन व्यक्ति को जहाँ भेजता है | खाली |
| `mfa_policy` | `optional`, `everyone`, `organization_admins` | `organization_admins` |
| `sign_in_ui` | `hosted` या `own` | `hosted` |

## उत्पादों में एक ही व्यक्ति को बनाए रखें

हर पहचान के साथ एक `vendor_data` मान जुड़ा होता है। यह वह `external_id` है जो आपने व्यक्ति को [आयात](https://docs.didit.me/hi/authentication/migration.md) करते समय दिया था, अन्यथा Didit पहचान ID। यह एक्सेस token, ID token और `GET session/` में दिखाई देता है।

सत्यापन सत्र बनाते समय और लेन-देन सबमिट करते समय वही मान `vendor_data` के रूप में उपयोग करें। इससे प्रमाणीकरण इवेंट कंसोल में उसी व्यक्ति के साथ दिखेंगे जिसके साथ उसके सत्यापन और लेन-देन दर्ज हैं। देखें [इवेंट और webhook](https://docs.didit.me/hi/authentication/events-and-webhooks.md)।

`vendor_data` को अपने बैकएंड पर सत्यापित टोकन से निकालें, कभी भी बिना जाँचे गए ब्राउज़र फ़ील्ड से नहीं।

| उत्पाद संयोजन | आप क्या बनाते हैं |
| - | - |
| प्रमाणीकरण | साइन इन करें, सत्र सत्यापित करें और साइन आउट करें। |
| पहचान सत्यापन + प्रमाणीकरण | साइन इन के बाद, यदि आपकी नीति इसकी माँग करती है, टोकन के `vendor_data` के साथ सत्यापन शुरू करें। |
| लेन-देन निगरानी + प्रमाणीकरण | साइन इन किए हुए व्यक्ति के `vendor_data` के लिए लेन-देन सबमिट करें। साइन इन इवेंट उसी व्यक्ति की समयरेखा और नियमों तक पहुँचते हैं। |
| तीनों | हर व्यक्ति के लिए एक `vendor_data`। हर उत्पाद का निर्णय अलग से संभालें। |

किसी भी संयोजन के लिए [साझा इंटीग्रेशन प्रॉम्प्ट](https://docs.didit.me/hi/integration/integration-prompt.md) का उपयोग करें। साइन इन के समय लागू होने वाली नीतियों के लिए [बॉट सुरक्षा](https://docs.didit.me/hi/authentication/bot-protection.md) पढ़ें।


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.