अपने Android ऐप्लिकेशन में 'पासवर्ड के लिए Smart Lock' सुविधा जोड़ने के लिए, आपको अपने ऐप्लिकेशन के स्टार्ट-अप और साइन-इन फ़्लो में क्रेडेंशियल एपीआई में कॉल जोड़ने होंगे. नीचे दिए गए डायग्राम में, एक सामान्य Android ऐप्लिकेशन का फ़्लो दिखाया गया है, जो पासवर्ड के लिए Smart Lock का इस्तेमाल करता है.
पासवर्ड के लिए Smart Lock को इंटिग्रेट करने के कई तरीके हैं. हालांकि, इंटिग्रेशन की खास जानकारी ऐप्लिकेशन के स्ट्रक्चर और उपयोगकर्ता अनुभव पर निर्भर करती है. ज़्यादातर ऐप्लिकेशन के लिए, इस फ़्लो का सुझाव दिया जाता है. इस फ़्लो का इस्तेमाल करने वाले ऐप्लिकेशन को उपयोगकर्ता अनुभव से जुड़े ये फ़ायदे मिलते हैं:
- आपकी सेवा के ऐसे मौजूदा उपयोगकर्ता जिनके पास एक ही क्रेडेंशियल सेव है, उन्हें तुरंत साइन इन कर दिया जाता है. साथ ही, ऐप्लिकेशन खोलते ही वे सीधे साइन-इन व्यू पर चले जाएंगे.
- जिन उपयोगकर्ताओं के पास एक से ज़्यादा क्रेडेंशियल सेव हैं या जिन्होंने अपने-आप साइन इन होने की सुविधा बंद कर दी है उन्हें ऐप्लिकेशन के साइन-इन व्यू पर जाने से पहले, सिर्फ़ एक डायलॉग का जवाब देना होगा.
- जिन उपयोगकर्ताओं ने कोई क्रेडेंशियल सेव नहीं किया है या जिन्होंने अभी तक साइन अप नहीं किया है वे एक ही टैप में अपना नाम और ईमेल चुन सकते हैं. ऐसा करने पर, उन्हें समझदारी से साइन-इन या साइन-अप व्यू पर भेजा जा सकता है, जहां यह जानकारी पहले से भरी होगी.
- जब उपयोगकर्ता साइन आउट करते हैं, तो ऐप्लिकेशन यह पक्का करता है कि वे अपने-आप वापस साइन इन न हों.
क्रेडेंशियल वापस पाएं
- ऐप्लिकेशन शुरू होने पर, अगर किसी उपयोगकर्ता ने पहले से साइन इन नहीं किया हुआ है, तो
CredentialsClient.request()
पर कॉल करें. - अगर
Task
कामयाब है, तोgetResult().getCredential()
से उपयोगकर्ता के क्रेडेंशियल पाएं और साइन इन करने के लिए उनका इस्तेमाल करें. - अगर
Task
काम नहीं कर रहा है और अपवाद के तौर पर,ResolvableApiException
का कोई इंस्टेंस है औरgetStatusCode()
RESOLUTION_REQUIRED
दिखाता है, तो क्रेडेंशियल चुनने के लिए उपयोगकर्ता के इनपुट की ज़रूरत होती है. उपयोगकर्ता को सेव किया गया खाता चुनने का अनुरोध करने के लिए,startResolutionForResult()
को कॉल करें. इसके बाद,getParcelableExtra(Credential.EXTRA_KEY)
पर कॉल करके उपयोगकर्ता के क्रेडेंशियल पाएं और साइन इन करने के लिए उनका इस्तेमाल करें.
क्रेडेंशियल सेव करें
अगर
Task
,ApiException
के साथ नहीं हो पाता है औरgetStatusCode()
,SIGN_IN_REQUIRED
दिखाता है, तो उपयोगकर्ता के पास सेव किया गया कोई क्रेडेंशियल नहीं होता. साथ ही, उसे आपके मौजूदा साइन-इन या साइन-अप फ़्लो का इस्तेमाल करके मैन्युअल तरीके से साइन इन या साइन अप करना होगा. जब उपयोगकर्ता साइन इन कर लेगा, तब उसे क्रेडेंशियल सेव करने का विकल्प दिया जा सकता है, ताकि आने वाले समय में उसे वापस पाया जा सके (पांचवां चरण).साइन इन करने से जुड़े संकेतों, जैसे कि उपयोगकर्ता का ईमेल पता वापस हासिल करके, उपयोगकर्ता की साइन इन करने या तेज़ी से और आसानी से साइन अप करने में मदद की जा सकती है. उपयोगकर्ता, संकेत चुन सकता है और अपने क्रेडेंशियल टाइप करना छोड़ सकता है. अगर आपके ऐप्लिकेशन में उपयोगकर्ताओं को साइन इन करने की ज़रूरत है, तो क्रेडेंशियल का अनुरोध पूरा न होने के तुरंत बाद, हिंट वापस पाने का विकल्प चुना जा सकता है. ऐसा न करने पर, उपयोगकर्ता के साइन इन या साइन अप फ़्लो शुरू करने तक इंतज़ार किया जा सकता है.
CredentialsClient.getHintPickerIntent()
को कॉल करें और उपयोगकर्ता से कोई खाता चुनने के लिए इंटेंट शुरू करें. इसके बाद,getParcelableExtra(Credential.EXTRA_KEY)
पर कॉल करके साइन इन करने का संकेत पाएं.- अगर संकेत का यूज़र आईडी किसी मौजूदा उपयोगकर्ता से मेल खाता है, तो साइन-इन फ़ॉर्म में, पहले से ही साइन-इन करने के लिए दिए गए फ़ॉर्म को भरें. साथ ही, उपयोगकर्ता को साइन-इन करने के लिए पासवर्ड डालने दें.
- अगर संकेत का यूज़र आईडी किसी मौजूदा उपयोगकर्ता से मेल नहीं खाता है, तो उपयोगकर्ता के आईडी और नाम से साइन-अप फ़ॉर्म में पहले से भरें. साथ ही, उपयोगकर्ता को नया खाता बनाने दें.
-
जब उपयोगकर्ता साइन इन कर लेगा या खाता बना लेगा, तो
CredentialsClient.save()
की मदद से यूज़र आईडी और पासवर्ड सेव करें.अगर उपयोगकर्ता ने 'Google साइन इन' जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर की मदद से साइन इन किया है, तो आईडी के तौर पर उपयोगकर्ता के ईमेल पते से
Credential
ऑब्जेक्ट बनाएं. साथ ही,setAccountType
की मदद से आइडेंटिटी प्रोवाइडर की जानकारी दें.
साइन आउट करें
- जब उपयोगकर्ता साइन आउट कर देता है, तो
CredentialsClient.disableAutoSignIn()
को कॉल करें, ताकि उपयोगकर्ता को तुरंत वापस साइन इन करने से रोका जा सके. अपने-आप साइन इन होने की सुविधा को बंद करने से उपयोगकर्ता, एक खाते से दूसरे खाते पर आसानी से जा सकते हैं. उदाहरण के लिए, ऑफ़िस और निजी खातों के बीच या शेयर किए गए डिवाइसों पर, खातों के बीच आसानी से स्विच किया जा सकता है. इसके लिए, उन्हें साइन इन करने की जानकारी फिर से नहीं डालनी पड़ती.
क्या आप अपने ऐप्लिकेशन में पासवर्ड के लिए Smart Lock को इंटिग्रेट करने के लिए तैयार हैं? आरंभ करें.