नया डिवाइस सेट अप करते समय, ऐप्लिकेशन के क्रेडेंशियल वापस पाना

क्रेडेंशियल मैनेजर की क्रेडेंशियल वापस पाएं सुविधा की मदद से, उपयोगकर्ता नए डिवाइस को सेट अप करते समय अपने ऐप्लिकेशन खाते वापस पा सकते हैं. यह एपीआई, डेवलपर के लिए झलक के तौर पर उपलब्ध है. यह उन सभी डिवाइसों पर काम करता है जिनमें Android 9 या इसके बाद का वर्शन और Google Play services (GMS) का कोर वर्शन 242200000 या इसके बाद का वर्शन मौजूद हो. क्रेडेंशियल वापस लाने की सुविधा के ये फ़ायदे हैं:

  • बेहतर उपयोगकर्ता अनुभव: उपयोगकर्ता, हर ऐप्लिकेशन में मैन्युअल तरीके से साइन इन किए बिना, अपने ऐप्लिकेशन खाते को वापस ला सकते हैं.
  • उपयोगकर्ताओं की दिलचस्पी बढ़ना: अगर उपयोगकर्ताओं को नए डिवाइस को सेट अप करते समय, अपना खाता वापस पाने की सुविधा मिलती है, तो वे आपके ऐप्लिकेशन का इस्तेमाल जारी रख सकते हैं.
  • डेवलपमेंट में कम समय लगता है: क्रेडेंशियल वापस लाने की सुविधा को क्रेडेंशियल मैनेजर के साथ इंटिग्रेट किया गया है. इसलिए, जिन डेवलपर के ऐप्लिकेशन में पहले से पासकी की सुविधा काम करती है वे क्रेडेंशियल वापस लाने की सुविधाएं जोड़ सकते हैं.

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

ज़रूरी क्रेडेंशियल बनाने, पाने, और मिटाने के लिए, 'क्रेडेंशियल वापस लाएं' सुविधा का इस्तेमाल किया जा सकता है.

  1. खाता वापस पाने के लिए क्रेडेंशियल बनाएं: जब उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करता है, तो उसके खाते से जुड़ा खाता वापस पाने के लिए क्रेडेंशियल बनाएं. यह क्रेडेंशियल, डिवाइस पर सेव किया जाता है और अगर उपयोगकर्ता ने Google Backup की सुविधा चालू की है और एंड-टू-एंड एन्क्रिप्शन की सुविधा उपलब्ध है, तो इसे क्लाउड से सिंक किया जाता है. ऐप्लिकेशन, क्लाउड से सिंक करने की सुविधा से ऑप्ट आउट कर सकते हैं
  2. क्रेडेंशियल मैनेजर से क्रेडेंशियल वापस पाने का अनुरोध करना: जब उपयोगकर्ता कोई नया डिवाइस सेट अप करता है, तो आपका ऐप्लिकेशन क्रेडेंशियल मैनेजर से क्रेडेंशियल वापस पाने का अनुरोध कर सकता है. इससे, उपयोगकर्ता को बिना किसी अतिरिक्त इनपुट के अपने-आप साइन इन किया जा सकता है.
  3. 'डेटा वापस लाने के लिए क्रेडेंशियल' मिटाना: जब कोई उपयोगकर्ता आपके ऐप्लिकेशन से साइन आउट करता है, तो आपको उससे जुड़े 'डेटा वापस लाने के लिए क्रेडेंशियल' मिटा देना चाहिए.

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

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

लागू करना

क्रेडेंशियल वापस लाने वाला एपीआई, क्रेडेंशियल मैनेजर Jetpack लाइब्रेरी के ज़रिए उपलब्ध है. शुरू करने के लिए यह तरीका अपनाएं:

  1. अपने प्रोजेक्ट में Credential Manager डिपेंडेंसी जोड़ें.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. CreateRestoreCredentialRequest ऑब्जेक्ट बनाएं.

  3. CredentialManager ऑब्जेक्ट पर createCredential() मेथड को कॉल करें.

    val credentialManager = CredentialManager.create(context)
    
    // On a successful authentication create a Restore Key
    // Pass in the context and CreateRestoreCredentialRequest object
    val response = credentialManager.createCredential(context, createRestoreRequest)
    

    जनरेट किया गया यह क्रेडेंशियल वापस लाने की सुविधा, वेबऑथन क्रेडेंशियल का एक टाइप है. इसे क्रेडेंशियल वापस लाने की कुंजी भी कहा जाता है.

  4. जब उपयोगकर्ता कोई नया डिवाइस सेट अप करता है, तो CredentialManager ऑब्जेक्ट पर getCredential() मैथड को कॉल करें.

    // Fetch the Authentication JSON from server
    val authenticationJson = ...
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(Immutablelist.of(options))
    
    // The restore key can be fetched in two scenarios to
    // 1. On the first launch of app on the device, fetch the Restore Key
    // 2. In the onRestore callback (if the app implements the Backup Agent)
    val response = credentialManager.getCredential(context, getRequest)
    
  5. जब उपयोगकर्ता आपके ऐप्लिकेशन से साइन आउट करता है, तो CredentialManager ऑब्जेक्ट पर clearCredentialState() मैथड को कॉल करें.

    // Create a ClearCredentialStateRequest object
    val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL)
    
    // On user log-out, clear the restore key
    val response = credentialManager.clearCredentialState(clearRequest)
    

अगर बैकअप एजेंट का इस्तेमाल किया जा रहा है, तो getCredential वाला हिस्सा onRestore कॉलबैक में पूरा करें. इससे यह पक्का होता है कि ऐप्लिकेशन का डेटा वापस लाने के तुरंत बाद, ऐप्लिकेशन के क्रेडेंशियल भी वापस आ जाएं.