पासवर्ड से पुष्टि करना

Credential Manager पर पासवर्ड की मदद से साइन इन करने की सुविधा उपलब्ध है. हालांकि, हम आपको पासकी और Google से साइन इन करें जैसी आधुनिक और ज़्यादा सुरक्षित पुष्टि करने के तरीकों को प्राथमिकता देने का सुझाव देते हैं. इन तरीकों से, सुरक्षा और उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है. हालांकि, अगर आपके ऐप्लिकेशन में पासवर्ड का इस्तेमाल करना ज़रूरी है, तो Credential Manager के साथ पासवर्ड लागू करने के लिए, इस गाइड का इस्तेमाल करें.

Credential Manager, आपके ऐप्लिकेशन के लिए एक यूनीफ़ाइड एपीआई उपलब्ध कराता है. इसकी मदद से, उपयोगकर्ता के क्रेडेंशियल सेव किए जा सकते हैं और उन्हें वापस पाया जा सकता है. इनमें उपयोगकर्ता नाम और पासवर्ड शामिल हैं. इससे उपयोगकर्ताओं के लिए साइन-इन करने की प्रोसेस आसान हो जाती है. साथ ही, वे क्रेडेंशियल प्रोवाइडर का आसानी से इस्तेमाल कर पाते हैं.

ज़रूरी शर्तें

Credential Manager में पासवर्ड सेव करने की सुविधा, Android 4.4 (एपीआई लेवल 19) और इसके बाद के वर्शन वाले डिवाइसों पर काम करती है.

खास जानकारी

इस गाइड में, पासवर्ड की मदद से साइन इन करने, उसे सेव करने, और बनाने के लिए, आपके ऐप्लिकेशन में किए जाने वाले ज़रूरी बदलावों के बारे में बताया गया है.

  • अपने ऐप्लिकेशन में डिपेंडेंसी जोड़ें: Credential Manager की ज़रूरी लाइब्रेरी जोड़ें.
  • Credential Manager को इंस्टैंशिएट करना: Credential Manager का इंस्टेंस बनाएं.
  • उपयोगकर्ता का पासवर्ड सेव करना: उपयोगकर्ता के क्रेडेंशियल को सुरक्षित तरीके से सेव करें.
  • पासवर्ड से साइन इन करें: लॉगिन के लिए सेव किए गए क्रेडेंशियल वापस पाएं और उनका इस्तेमाल करें.
  • उन फ़ील्ड की पहचान करें जिनमें ऑटोमैटिक तरीके से जानकारी भरने की सुविधा का इस्तेमाल किया जाना चाहिए: बेहतर उपयोगकर्ता अनुभव के लिए, ऑटोमैटिक तरीके से जानकारी भरने की सुविधा का इस्तेमाल करें.
  • डिजिटल ऐसेट लिंक के लिए सहायता जोड़ें: लिंक किए गए ऐप्लिकेशन और वेबसाइटों के बीच पासवर्ड शेयर करने की सुविधा जोड़ें.

अपने ऐप्लिकेशन में डिपेंडेंसी जोड़ना

अपने ऐप्लिकेशन मॉड्यूल की build.gradle फ़ाइल में, ये डिपेंडेंसी जोड़ें:

Kotlin

dependencies {
    implementation("androidx.credentials:credentials:1.7.0-alpha02")
}

Groovy

dependencies {
    implementation "androidx.credentials:credentials:1.7.0-alpha02"
}

क्रेडेंशियल मैनेजर को इंस्टैंशिएट करना

CredentialManager ऑब्जेक्ट बनाने के लिए, अपने ऐप्लिकेशन या गतिविधि के कॉन्टेक्स्ट का इस्तेमाल करें.

// Use your app or activity context to instantiate a client instance of
// CredentialManager.
private val credentialManager = CredentialManager.create(context)

किसी उपयोगकर्ता का पासवर्ड सेव करना

जब कोई व्यक्ति आपके ऐप्लिकेशन में साइन अप कर लेता है या अपना पासवर्ड अपडेट कर लेता है, तो उसके क्रेडेंशियल को उसके पासवर्ड मैनेजर में सेव करें.

  1. पासवर्ड का अनुरोध बनाना: CreatePasswordRequest ऑब्जेक्ट में, सेव किया जाने वाला उपयोगकर्ता नाम और पासवर्ड होता है. सेव करने की प्रोसेस शुरू करने के लिए, credentialManager.createCredential() को कॉल करें.

  2. जवाब को मैनेज करना: CreatePasswordResponse को प्रोसेस करें और गड़बड़ियों को मैनेज करें. उदाहरण के लिए, अगर उपयोगकर्ता अनुरोध रद्द करता है.

suspend fun registerPassword(username: String, password: String) {
    // Initialize a CreatePasswordRequest object.
    val createPasswordRequest =
        CreatePasswordRequest(id = username, password = password)

    // Create credential and handle result.
    coroutineScope {
        try {
            val result =
                credentialManager.createCredential(
                    // Use an activity based context to avoid undefined
                    // system UI launching behavior.
                    activityContext,
                    createPasswordRequest
                )
            // Handle register password result
        } catch (e: CreateCredentialException) {
            handleFailure(e)
        }
    }
}

पासवर्ड से साइन इन करना

सेव किए गए क्रेडेंशियल वापस पाने के लिए, GetPasswordOption के साथ GetCredentialRequest बनाएं और getCredential() को कॉल करें. यह फ़िल्टर करने के लिए कि दिए गए User-ID के आधार पर कौनसे पासवर्ड फ़ेच किए जाएं, allowedUserIds वाले वैकल्पिक फ़ील्ड का इस्तेमाल करें.

val getPasswordOption = GetPasswordOption()

val credentialRequest = GetCredentialRequest.Builder()
    .addCredentialOption(getPasswordOption)
    .build()

उन फ़ील्ड की पहचान करना जिनमें ऑटोमैटिक भरने की सुविधा का इस्तेमाल किया जाना चाहिए

android:isCredential एट्रिब्यूट की मदद से, क्रेडेंशियल देने वाली कंपनियां उन फ़ील्ड की पहचान कर पाती हैं जिन्हें ऑटोमैटिक भरने के लिए बनाया गया है. इससे उपयोगकर्ता को बेहतर अनुभव मिलता है. यह एट्रिब्यूट, मौजूदा autofillHints की जानकारी को पूरा करता है.

ऑटोमैटिक तरीके से भरने की सुविधा के लिए, कुछ फ़ील्ड के बारे में बताने के ये फ़ायदे हैं:

  • ऑटोमैटिक तरीके से भरने की सुविधा को ज़्यादा सटीक बनाया गया है: इससे पासवर्ड मैनेजर और Android सिस्टम को, क्रेडेंशियल के लिए बनाए गए फ़ील्ड की बेहतर पहचान करने में मदद मिलती है.
  • बेहतर उपयोगकर्ता अनुभव: इससे अपने-आप जानकारी भरने की सुविधा के लिए बेहतर और ज़्यादा भरोसेमंद सुझाव मिल सकते हैं.

उपयोगकर्ता नाम और पासवर्ड फ़ील्ड में isCredential एट्रिब्यूट शामिल करें. यहां दिए गए उदाहरण में दिखाया गया है कि इसे कैसे शामिल किया जाता है:

<EditText
    android:id="@+id/username_edittext"
    android:autofillHints="username"
    android:isCredential="true" />

<EditText
    android:id="@+id/password_edittext"
    android:inputType="textPassword"
    android:autofillHints="password"
    android:isCredential="true" />

इसके अलावा, प्रोग्राम के हिसाब से एट्रिब्यूट जोड़ें. इसके लिए, यहां दिया गया स्निपेट देखें:

if (android.os.Build.VERSION.SDK_INT >=
    android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // Android 14
    usernameEditText.isCredential = true
    passwordEditText.isCredential = true
}

पासवर्ड मैनेजर के साथ काम करने के लिए, आपको अपने ऐप्लिकेशन और वेबसाइट के बीच डिजिटल ऐसेट लिंक कॉन्फ़िगर करना होगा. इससे दोनों प्लैटफ़ॉर्म पर क्रेडेंशियल को सुरक्षित तरीके से शेयर किया जा सकता है.