क्रेडेंशियल मैनेजर की क्रेडेंशियल वापस पाएं सुविधा की मदद से, उपयोगकर्ता नए डिवाइस को सेट अप करते समय अपने ऐप्लिकेशन खातों को वापस पा सकते हैं. यह एपीआई, डेवलपर के लिए उपलब्ध है. इसका इस्तेमाल उन सभी डिवाइसों पर किया जा सकता है जिनमें Android 9 या इसके बाद का वर्शन और Google Play services (GMS) Core का 242200000 या इसके बाद का वर्शन मौजूद है. क्रेडेंशियल वापस लाने की सुविधा के ये फ़ायदे हैं:
- बेहतर उपयोगकर्ता अनुभव: उपयोगकर्ता, अपने ऐप्लिकेशन खाते को वापस ला सकते हैं. इसके लिए, उन्हें हर ऐप्लिकेशन में मैन्युअल तरीके से साइन इन करने की ज़रूरत नहीं होती.
- उपयोगकर्ता की दिलचस्पी बढ़ना: अगर उपयोगकर्ता को नया डिवाइस सेट अप करते समय, अपना खाता वापस लाने का विकल्प मिलता है, तो वह आपके ऐप्लिकेशन का इस्तेमाल जारी रख सकता है.
- डेवलपमेंट में कम मेहनत: क्रेडेंशियल वापस लाने की सुविधा, क्रेडेंशियल मैनेजर के साथ इंटिग्रेट की गई है. इसलिए, पासकी की सुविधा देने वाले डेवलपर, क्रेडेंशियल वापस लाने की सुविधाएं जोड़ सकते हैं.
यह कैसे काम करता है
'क्रेडेंशियल वापस लाएं' सुविधा का इस्तेमाल करके, काम के क्रेडेंशियल बनाए जा सकते हैं, उन्हें वापस पाया जा सकता है, और मिटाया जा सकता है.
- क्रेडेंशियल वापस पाने की सुविधा चालू करें: जब उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करे, तब उसके खाते से जुड़ा क्रेडेंशियल वापस पाने की सुविधा चालू करें. यह क्रेडेंशियल स्थानीय तौर पर सेव किया जाता है. अगर उपयोगकर्ता ने Google बैकअप लेने की सुविधा चालू की है और एंड-टू-एंड एन्क्रिप्शन की सुविधा उपलब्ध है, तो इसे क्लाउड पर सिंक किया जाता है. ऐप्लिकेशन, क्लाउड पर सिंक करने की सुविधा से ऑप्ट आउट कर सकते हैं
- क्रेडेंशियल वापस पाने का अनुरोध करना: जब उपयोगकर्ता कोई नया डिवाइस सेट अप करता है, तब आपका ऐप्लिकेशन, क्रेडेंशियल मैनेजर से क्रेडेंशियल वापस पाने का अनुरोध कर सकता है. इससे उपयोगकर्ता को बिना किसी अतिरिक्त इनपुट के अपने-आप साइन इन करने की अनुमति मिलती है.
- क्रेडेंशियल वापस लाने की सुविधा बंद करें: जब कोई उपयोगकर्ता आपके ऐप्लिकेशन से साइन आउट करता है, तो आपको उससे जुड़ा क्रेडेंशियल वापस लाने की सुविधा बंद कर देनी चाहिए.
क्रेडेंशियल वापस लाने की सुविधा, उन बैकएंड सिस्टम के साथ आसानी से इंटिग्रेट हो सकती है जिन्होंने पहले से ही पासकी लागू की हैं. पासकी और क्रेडेंशियल वापस लाने की कुंजियां (क्रेडेंशियल वापस लाने की सुविधा के लिए इस्तेमाल किया जाने वाला क्रेडेंशियल टाइप), दोनों एक ही तकनीकी स्पेसिफ़िकेशन का पालन करती हैं. इसलिए, ये दोनों एक-दूसरे के साथ काम करती हैं. इस अलाइनमेंट से यह पक्का किया जाता है कि क्रेडेंशियल वापस पाने की प्रोसेस, पासकी की सुविधा वाले सिस्टम में सेव किए गए उपयोगकर्ता के क्रेडेंशियल को असरदार तरीके से वापस पा सके और उन्हें फिर से इस्तेमाल कर सके. इससे अलग-अलग प्लैटफ़ॉर्म और पुष्टि करने के तरीकों पर, उपयोगकर्ता को एक जैसा और आसान अनुभव मिलता है.
लागू करना
Restore Credentials API, Credential Manager Jetpack लाइब्रेरी के ज़रिए उपलब्ध है. शुरू करने के लिए यह तरीका अपनाएं:
अपने प्रोजेक्ट में क्रेडेंशियल मैनेजर की डिपेंडेंसी जोड़ें.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
CreateRestoreCredentialRequest
ऑब्जेक्ट बनाएं.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)
जनरेट किया गया यह क्रेडेंशियल वापस पाने का क्रेडेंशियल, वेबऑथेंटिकेशन क्रेडेंशियल का एक टाइप है. इसे क्रेडेंशियल वापस पाने की कुंजी के तौर पर जाना जाता है.
जब उपयोगकर्ता कोई नया डिवाइस सेट अप करता है, तो
CredentialManager
ऑब्जेक्ट परgetCredential()
तरीके को कॉल करें.// Fetch the Authentication JSON from server val authenticationJson = fetchAuthenticationJson() // Create the GetRestoreCredentialRequest object val options = GetRestoreCredentialOption(authenticationJson) val getRequest = GetCredentialRequest(listOf(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)
जब उपयोगकर्ता आपके ऐप्लिकेशन से साइन आउट करे, तब
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
कॉलबैक में पूरा करें. इससे यह पक्का होता है कि ऐप्लिकेशन का डेटा वापस लाने के तुरंत बाद, ऐप्लिकेशन के क्रेडेंशियल वापस आ जाएं.
अक्सर पूछे जाने वाले सवाल
पहला सवाल. पासकी और पासकी को वापस लाने की सुविधा के लिए इस्तेमाल की जाने वाली कुंजी में क्या अंतर है?
डेटा वापस लाने के लिए इस्तेमाल की जाने वाली कुंजी, पासकी की तरह ही काम करती है. हालांकि, इसे खास तौर पर नए डिवाइसों पर खाते का डेटा वापस लाने के लिए डिज़ाइन किया गया है. Google Password Manager जैसे किसी पासवर्ड मैनेजर का इस्तेमाल करके पुष्टि करने पर, इस्तेमाल की जा सकने वाली पासकी और पासवर्ड दिखते हैं. हालांकि, रीस्टोर करने की कुंजी नहीं दिखती, क्योंकि इसका इस्तेमाल नियमित तौर पर साइन इन करने के लिए नहीं किया जाता है.
दूसरा सवाल. क्या रीस्टोर कुंजी, एक बार इस्तेमाल होने वाला क्रेडेंशियल है?
नहीं, रीस्टोर करने की कुंजी का इस्तेमाल सिर्फ़ एक बार नहीं किया जा सकता. क्रेडेंशियल मैनेजर, स्टेटलेस होता है. इसका मतलब है कि यह उपयोगकर्ता की गतिविधि के बारे में जानकारी नहीं रखता. इसलिए, इस्तेमाल के बाद यह कुंजी को अपने-आप नहीं मिटा सकता.
कुंजियों को सिर्फ़ इन स्थितियों में हटाया जाता है:
- सिस्टम-लेवल की कार्रवाइयां: उपयोगकर्ता ऐप्लिकेशन को अनइंस्टॉल करते हैं या उसका डेटा मिटाते हैं.
- ऐप्लिकेशन-लेवल के कॉल: जब आपको अपने ऐप्लिकेशन के कोड में उपयोगकर्ता के लॉग आउट करने की प्रोसेस को मैनेज करना हो, तब प्रोग्राम के हिसाब से
CredentialManager#clearCredentialState()
को कॉल करके, कुंजी को मिटाएं.
तीसरा सवाल. क्या क्रेडेंशियल वापस लाने की सुविधा सिर्फ़ नए डिवाइस के लिए काम करती है?
हां, इस सुविधा को Android डिवाइस के शुरुआती सेटअप के लिए डिज़ाइन किया गया है. ऐसा इसलिए, क्योंकि यह सीधे तौर पर सिस्टम के बैकअप और डेटा वापस लाने की सुविधा से जुड़ी है.
चौथा सवाल. क्या क्रेडेंशियल वापस लाने की सुविधा का इस्तेमाल करके, किसी ऐसे डिवाइस पर उपयोगकर्ता को अपने-आप साइन इन किया जा सकता है जिस पर उसी Google खाते से लॉग इन किया गया है?
नहीं, क्रेडेंशियल वापस लाने की सुविधा का इस्तेमाल, सभी डिवाइसों पर सामान्य साइन-इन के लिए नहीं किया जा सकता. यह सुविधा सिर्फ़ एक खास स्थिति में काम करती है: जब कोई उपयोगकर्ता अपने पुराने डिवाइस के बैकअप को वापस लाकर, नया डिवाइस सेट अप कर रहा हो. एक बार डेटा वापस लाने की इस प्रोसेस के लिए, दोनों डिवाइस एक ही Google खाते से लिंक होने चाहिए.
पांचवां सवाल. मेरे संगठन के पास एक मुख्य ऐप्लिकेशन और कई सब-ऐप्लिकेशन हैं. क्या एक रीस्टोर कुंजी, इन सभी ऐप्लिकेशन के लिए काम कर सकती है?
नहीं. रीस्टोर करने की कुंजी, ऐप्लिकेशन के यूनीक पैकेज नाम से जुड़ी होती है. आपके मुख्य ऐप्लिकेशन और हर सब-ऐप्लिकेशन के लिए पैकेज के अलग-अलग नाम हैं. इसलिए, आपको हर ऐप्लिकेशन के लिए अलग-अलग रीस्टोर कुंजी बनानी होगी.
छठा सवाल. क्या किसी उपयोगकर्ता के खाते के लिए, पासकी की मदद से रीस्टोर करने का कोड बनाना ज़रूरी है?
नहीं, पासकी की ज़रूरत नहीं है. डेटा वापस पाने की कुंजी बनाने की सुविधा, उपयोगकर्ता के साइन इन करने के तरीके से अलग होती है. इसका मकसद, उपयोगकर्ता की पुष्टि की मौजूदा स्थिति को सेव करना है. जब तक उपयोगकर्ता आपके ऐप्लिकेशन में सक्रिय रूप से साइन इन रहता है, तब तक उसके लिए रीस्टोर करने का पासकोड जनरेट किया जा सकता है.
सातवां सवाल. क्या उपयोगकर्ता, वापस लाने की कुंजी को मिटा सकता है?
नहीं, उपयोगकर्ता के पास रीस्टोर करने के लिए इस्तेमाल होने वाली कुंजी को सीधे तौर पर कंट्रोल करने का विकल्प नहीं होता. ऐप्लिकेशन का लॉजिक, कुंजियों को वापस लाने की सुविधा को मैनेज करने के लिए ज़िम्मेदार होता है.
हमारा सुझाव है कि सुरक्षा के लिए, जब भी कोई उपयोगकर्ता साइन आउट करे, ऐप्लिकेशन अपने-आप कुंजी मिटा दे. इससे यह पक्का होता है कि अगली बार जब वे उसी डिवाइस पर ऐप्लिकेशन खोलें, तो वे ठीक से साइन आउट हो जाएं. साथ ही, उन्हें फिर से साइन इन करने के लिए कहा जाएगा.
आठवां सवाल. क्या मेनिफ़ेस्ट में allowBackup को true पर सेट किए बिना, Restore Credentials का इस्तेमाल किया जा सकता है?
हां, क्रेडेंशियल वापस पाने की सुविधा काम करती है. इससे कोई फ़र्क़ नहीं पड़ता कि allowBackup को सही पर सेट किया गया है या नहीं.
नौवां सवाल. जिन उपयोगकर्ताओं ने एक ही ऐप्लिकेशन में कई खातों से लॉग इन किया है उनके लिए, क्रेडेंशियल वापस लाने की सुविधा कैसे काम करेगी?
क्रेडेंशियल वापस लाने की सुविधा, एक बार में सिर्फ़ एक खाते के साथ काम करने के लिए डिज़ाइन की गई है.