Android इंटिग्रेशन फ़्लो

अपने Android ऐप्लिकेशन में 'पासवर्ड के लिए Smart Lock' सुविधा को इंटिग्रेट करने के लिए, आपको अपने ऐप्लिकेशन के स्टार्ट-अप और साइन-इन फ़्लो में, क्रेडेंशियल एपीआई में कॉल जोड़ने होंगे. नीचे दिया गया डायग्राम, एक सामान्य Android ऐप्लिकेशन का फ़्लो दिखाता है जो पासवर्ड के लिए Smart Lock का इस्तेमाल करता है.

पासवर्ड के लिए Smart Lock को इंटिग्रेट करने के कई तरीके हैं. हालांकि, इंटिग्रेशन की खास बातें ऐप्लिकेशन के स्ट्रक्चर और उपयोगकर्ता अनुभव पर निर्भर करती हैं. ज़्यादातर ऐप्लिकेशन के लिए, नीचे दिया गया तरीका इस्तेमाल करने का सुझाव दिया जाता है. इस फ़्लो का इस्तेमाल करने वाले ऐप्लिकेशन को ये फ़ायदे मिलते हैं:

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

Smart Lock के साइन इन फ़्लो का डायग्राम

क्रेडेंशियल वापस पाएं

  1. अगर ऐप्लिकेशन के शुरू होने पर, अगर किसी व्यक्ति ने पहले से साइन इन नहीं किया है, तो CredentialsClient.request() पर कॉल करें.
  2. अगर Task काम करता है, तो getResult().getCredential() के साथ उपयोगकर्ता के क्रेडेंशियल पाएं और साइन इन करने के लिए उनका इस्तेमाल करें.
  3. अगर Task काम नहीं करता और अपवाद के तौर पर, ResolvableApiException का कोई इंस्टेंस है और getStatusCode() RESOLUTION_REQUIRED दिखाता है, तो क्रेडेंशियल चुनने के लिए उपयोगकर्ता का इनपुट ज़रूरी है. उपयोगकर्ता को सेव किया गया खाता चुनने का अनुरोध करने के लिए, startResolutionForResult() को कॉल करें. इसके बाद, getParcelableExtra(Credential.EXTRA_KEY) पर कॉल करके उपयोगकर्ता के क्रेडेंशियल पाएं और उनका इस्तेमाल करके साइन इन करें.

क्रेडेंशियल सेव करें

  1. अगर Task, ApiException के साथ काम नहीं करता और getStatusCode(), SIGN_IN_REQUIRED दिखाता है, तो उपयोगकर्ता के पास कोई सेव किया गया क्रेडेंशियल नहीं होता. इसके लिए, उसे अपने मौजूदा साइन इन या साइन अप फ़्लो का इस्तेमाल करके, मैन्युअल तरीके से साइन इन या साइन अप करना होगा. जब उपयोगकर्ता साइन इन कर लेता है, तब उसे आने वाले समय में अपने क्रेडेंशियल वापस पाने के लिए, उसे सेव करने का मौका दिया जा सकता है (पांचवां चरण).

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

    1. CredentialsClient.getHintPickerIntent() को कॉल करें और उपयोगकर्ता से कोई खाता चुनने का अनुरोध करने के लिए, इंटेंट शुरू करें. इसके बाद, साइन-इन करने के लिए, getParcelableExtra(Credential.EXTRA_KEY) को कॉल करें.
    2. अगर संकेत का यूज़र आईडी किसी मौजूदा उपयोगकर्ता से मेल खाता है, तो साइन-इन वाले फ़ॉर्म को पहले से ही भरें. साथ ही, साइन इन करने के लिए उपयोगकर्ता को पासवर्ड डालने दें.
    3. अगर संकेत का यूज़र आईडी, किसी मौजूदा उपयोगकर्ता से मेल नहीं खाता है, तो उपयोगकर्ता के आईडी और नाम की जानकारी वाला यूज़र आईडी पहले से भरें. साथ ही, उपयोगकर्ता को नया खाता बनाने दें.
  2. उपयोगकर्ता के साइन इन करने या खाता बनाने के बाद, यूज़र आईडी और पासवर्ड को CredentialsClient.save() की मदद से सेव करें.

    अगर उपयोगकर्ता ने 'Google साइन इन' जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर की मदद से साइन इन किया है, तो Credential ऑब्जेक्ट बनाएं. इसके लिए, उपयोगकर्ता के ईमेल पते का इस्तेमाल करें और आईडी के तौर पर, setAccountType की मदद से आइडेंटिटी प्रोवाइडर की जानकारी दें.

साइन आउट करें

  1. जब उपयोगकर्ता साइन आउट कर देता है, तो CredentialsClient.disableAutoSignIn() पर कॉल करें, ताकि उपयोगकर्ता को तुरंत फिर से साइन इन करने से रोका जा सके. अपने-आप साइन इन होने की सुविधा को बंद करने से, उपयोगकर्ता एक से दूसरे खाते पर आसानी से स्विच कर सकते हैं. उदाहरण के लिए, काम और निजी खातों के बीच या शेयर किए गए डिवाइसों पर खातों के बीच आसानी से स्विच किया जा सकता है. इसके लिए, उन्हें साइन इन की जानकारी फिर से डालने की ज़रूरत नहीं पड़ती.

क्या आप अपने ऐप्लिकेशन में 'पासवर्ड के लिए Smart Lock' की सुविधा जोड़ने के लिए तैयार हैं? आरंभ करें.