अपने 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()
के साथ User-ID और पासवर्ड सेव करें.अगर उपयोगकर्ता ने 'Google साइन-इन' जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर से साइन इन किया है, तो उपयोगकर्ता के ईमेल पते के साथ आईडी के तौर पर
Credential
ऑब्जेक्ट बनाएं. साथ ही,setAccountType
के साथ आइडेंटिटी प्रोवाइडर की जानकारी दें.
साइन आउट करें
- जब उपयोगकर्ता साइन आउट करता है, तो उसे
CredentialsClient.disableAutoSignIn()
को तुरंत कॉल करने से रोकने के लिए, उसे कॉल करें. अपने-आप साइन इन होने की सुविधा बंद करने से, उपयोगकर्ता खातों के बीच आसानी से स्विच कर पाते हैं. उदाहरण के लिए, ऑफ़िस या निजी खातों के बीच या शेयर किए गए डिवाइस पर मौजूद खातों के बीच. इसके लिए, उन्हें अपनी साइन-इन जानकारी फिर से डालने की ज़रूरत नहीं पड़ती.
पासवर्ड के लिए Smart Lock को अपने ऐप्लिकेशन में इंटिग्रेट करने के लिए तैयार हैं? आरंभ करें.