केस स्टडी

Uber, Restore Credentials API की मदद से हर साल मैन्युअल लॉगिन की संख्या को 40 लाख तक कैसे कम कर रहा है

पांच मिनट में पढ़ें
Niharika Arora
डेवलपर रिलेशंस इंजीनियर

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

उपयोगकर्ताओं को लगातार सेवाएं देने के लिए, Uber के इंजीनियरों ने क्रेडेंशियल वापस पाने की सुविधा का इस्तेमाल किया. यह सुविधा, ऐसे समय में एक ज़रूरी टूल है, जब अमेरिका में 40% लोग हर साल अपना स्मार्टफ़ोन बदलते हैं. उपयोगकर्ताओं की मांग और कोड प्रोटोटाइपिंग का आकलन करने के बाद, उन्होंने Uber rider ऐप्लिकेशन में क्रेडेंशियल वापस पाने की सुविधा लॉन्च की. यह पुष्टि करने के लिए कि क्रेडेंशियल वापस पाने की सुविधा से, फिर से लॉग इन करने में होने वाली परेशानी को दूर करने में मदद मिलती है, Uber की टीम ने पांच हफ़्तों तक A/B एक्सपेरिमेंट किया. इस इंटिग्रेशन की वजह से, मैन्युअल तरीके से लॉग इन करने वाले लोगों की संख्या में कमी आई है. Uber के बड़े उपयोगकर्ता आधार के हिसाब से अनुमान लगाया गया है कि इससे हर साल, मैन्युअल तरीके से लॉग इन करने वाले 40 लाख लोगों की संख्या में कमी आएगी.

क्रेडेंशियल वापस लाने की सुविधा की मदद से, लॉगिन करने में आने वाली मुश्किलों को कम करना

restore-credentials.gif

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

Uber के Android इंजीनियर, Thomás Oliveira Horta ने कहा, “कुछ लोग Uber ऐप्लिकेशन का इस्तेमाल रोज़ाना नहीं करते. हालांकि, उन्हें उम्मीद होती है कि जब उन्हें इसकी ज़रूरत होगी, तब यह काम करेगा.” “नए Android फ़ोन पर राइड का अनुरोध करने के लिए ऐप्लिकेशन खोलने पर, यह पता चलना कि आप लॉग आउट हैं, एक बुरा अनुभव हो सकता है.”

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

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

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

image_thomas2.png

लागू करने पर विचार

थॉमस ने कहा, “Android में कुछ मामूली बदलाव करके, सैंपल कोड और दस्तावेज़ का इस्तेमाल करके, इंटिग्रेशन आसानी से किया जा सकता है.” “हमारे ऐप्लिकेशन में पासकी के लिए, पहले से ही क्रेडेंशियल मैनेजर का इस्तेमाल किया जा रहा था. इसलिए, बैकएंड में सिर्फ़ कुछ छोटे-मोटे बदलाव करने पड़े. इसलिए, हमें सिर्फ़ Credential Manager की डिपेंडेंसी को उसके नए वर्शन पर अपडेट करना पड़ा, ताकि हम Restore Credentials API को ऐक्सेस कर सकें. हमने पासकी बनाने के उसी फ़्लो का इस्तेमाल करके, एक रीस्टोर की बनाई है. जब हमारा ऐप्लिकेशन किसी नए डिवाइस पर लॉन्च किया जाता है, तो ऐप्लिकेशन इस की की जांच करता है. इसके लिए, वह बिना किसी सूचना के पासकी को वापस पाने की कोशिश करता है. अगर रीस्टोर करने की कुंजी मिल जाती है, तो इसका इस्तेमाल तुरंत किया जाता है. इससे उपयोगकर्ता अपने-आप साइन इन हो जाता है और उसे मैन्युअल तरीके से लॉगिन करने की ज़रूरत नहीं पड़ती.”

डेवलपमेंट की पूरी प्रोसेस के दौरान, Uber के इंजीनियरों को लागू करने के दौरान कुछ चुनौतियों का सामना करना पड़ा. इनमें सही एंट्री पॉइंट चुनने से लेकर, बैकएंड पर क्रेडेंशियल के लाइफ़साइकल को मैनेज करने तक की चुनौतियां शामिल हैं.

'क्रेडेंशियल वापस लाएं' एंट्री पॉइंट चुनना

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

थॉमस ने कहा, “यह ऐप्लिकेशन लॉन्च के दौरान या डिवाइस को रीस्टोर और सेटअप करने के दौरान बैकग्राउंड में हो सकता है. इसके लिए, BackupAgent का इस्तेमाल किया जाता है.” “बैकग्राउंड लॉगिन एंट्री पॉइंट, उपयोगकर्ता के लिए ज़्यादा आसान है. हालांकि, इससे बैकग्राउंड में होने वाली कार्रवाइयों में समस्याएं आती हैं. साथ ही, इसके लिए BackupAgent API का इस्तेमाल करना पड़ता है. इससे Uber के जैसे बड़े कोडबेस में जटिलता बढ़ जाती है.” उन्होंने पहली बार ऐप्लिकेशन लॉन्च करने के दौरान इस सुविधा को लागू करने का फ़ैसला किया. यह सुविधा, मैन्युअल तरीके से लॉगिन करने की तुलना में काफ़ी तेज़ थी.

सर्वर साइड से जुड़ी समस्याओं को हल करना 

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

Uber की टीम ने WebAuthn सेवाओं में कुछ छोटे-मोटे बदलाव करके इस समस्या को ठीक किया. साथ ही, उन्होंने क्रेडेंशियल के नए टाइप बनाए, ताकि पासकी को रीस्टोर करने के क्रेडेंशियल से अलग किया जा सके और उन्हें सही तरीके से प्रोसेस किया जा सके.

क्रेडेंशियल वापस पाने की सुविधा के लाइफ़साइकल को मैनेज करना

Uber के इंजीनियरों को बैकएंड पर क्रेडेंशियल कुंजियों को मैनेज करने में कई समस्याएं आईं. बैकएंड इंजीनियर रयान ओ'लॉफ़लिन ने इन समस्याओं को हल करने में मदद की:

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

Uber के इंजीनियरों ने इन चुनौतियों को हल करने के लिए, सर्वर-साइड कुंजी मिटाने के नियम बनाए. ये नियम, नए क्रेडेंशियल के रजिस्ट्रेशन और क्रेडेंशियल के इस्तेमाल पर आधारित हैं.

इस सुविधा को डिज़ाइन करने से लेकर लॉन्च करने तक, सिर्फ़ दो महीने लगे. इस दौरान, इसे डेवलप और टेस्ट किया गया. इसके बाद, पांच हफ़्तों तक A/B एक्सपेरिमेंट (उपयोगकर्ताओं के साथ सुविधा की पुष्टि करने का समय) आसानी से चला और इससे बेहतरीन नतीजे मिले.  

क्रेडेंशियल वापस लाने की सुविधा का इस्तेमाल करके, उपयोगकर्ताओं को ऐप्लिकेशन छोड़ने से रोकना

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

  • मैन्युअल लॉगिन (एसएमएस ओटीपी, पासवर्ड, सोशल लॉगिन) में 3.4% की गिरावट आई.
  • एसएमएस ओटीपी की ज़रूरत वाले लॉगिन के लिए, खर्च में 1.2% की कमी आई.
  • Uber के ऐक्सेस रेट में 0.575% की बढ़ोतरी हुई. ऐक्सेस रेट का मतलब है, उन डिवाइसों का प्रतिशत जिन पर ऐप्लिकेशन की होम स्क्रीन खुल गई.
  • सफ़र पूरा करने वाले डिवाइसों की संख्या में 0.614% की बढ़ोतरी हुई. 

आज, क्रेडेंशियल वापस पाने की सुविधा, Uber के राइडर ऐप्लिकेशन का स्टैंडर्ड हिस्सा बनने की ओर बढ़ रही है. ट्रायल ग्रुप में 95% से ज़्यादा उपयोगकर्ता रजिस्टर हो चुके हैं. 

uber-devices.png

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

image_thomas.png

क्रेडेंशियल वापस लाने की सुविधा का असर

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

Uber के लीड प्रॉडक्ट मैनेजर (कोर आइडेंटिटी) मैट म्यूलर ने कहा, "Google के RestoreCredentials को इंटिग्रेट करने से, हमें अपने उपयोगकर्ताओं को नए डिवाइस पर 'यह काम करता है' वाला बेहतरीन अनुभव देने में मदद मिली. हमारे उपयोगकर्ता हमसे यही उम्मीद करते हैं.” “इससे रेवेन्यू में सीधे तौर पर बढ़ोतरी हुई. इससे यह साबित होता है कि लॉगिन की प्रोसेस को आसान बनाने से, उपयोगकर्ताओं की दिलचस्पी और उन्हें अपने साथ बनाए रखने में मदद मिलती है."

क्या आप अपने ऐप्लिकेशन में लॉगिन करने के अनुभव को बेहतर बनाने के लिए तैयार हैं?

क्रेडेंशियल वापस लाएं सुविधा का इस्तेमाल करके, डिवाइस बदलते समय आसानी से लॉगिन करने का तरीका जानें. साथ ही, ब्लॉग पोस्ट में इसके बारे में ज़्यादा पढ़ें. Android Studio Otter के सबसे नए कैनरी वर्शन में, इंटिग्रेशन की पुष्टि की जा सकती है. ऐसा इसलिए, क्योंकि नई सुविधाएं बैकअप लेने और उसे वापस लाने के तरीकों को मॉक करने में मदद करती हैं. 

अगर आपने Credential Manager का इस्तेमाल पहले कभी नहीं किया है, तो इंटिग्रेशन से जुड़ी मदद पाने के लिए, हमारे आधिकारिक दस्तावेज़, कोडलैब, और सैंपल देखें

इसे लिखा है:

पढ़ना जारी रखें