टोकन प्रमाणीकरण के बारे में सब कुछ और इसे एंड्रॉइड में कैसे लागू किया जाए: भाग 1

Unsplash पर Dayne Topkin द्वारा फोटो

एक्सेस टोकन क्या हैं?

जब मैंने फेसबुक एसडीके का उपयोग सामाजिक लॉगिन के लिए किया था तब मैंने पहली बार 'एक्सेस टोकन' शब्द सुना था। सबसे पहले, मेरे लिए यह समझना वास्तव में कठिन था कि क्यों हम डेवलपर्स हर एपीआई कॉल पर इस 'बेकार' टोकन को संलग्न करने में इतना प्रयास करते हैं। फिर, जैसे ही हम एक अच्छे डेवलपर / प्रोग्रामर के रूप में विकसित होते हैं, हम किसी एप्लिकेशन या वेबसाइट या जिस भी सॉफ्टवेयर पर काम कर रहे हैं, उसके सुरक्षा पहलुओं के बारे में परेशान होने लगते हैं। मुझे इसे इस तरह से करने दो, चलो मान लेते हैं कि हर कोई कम से कम एक हैरी पॉटर फिल्म देख चुका है। हॉगवर्ट्स स्कूल के सामान्य कमरों में प्रवेश करने के लिए एक पासवर्ड मिला है। और केवल घर के सदस्यों को उनके सामान्य कमरों का पासवर्ड पता है। यह टोकन प्रमाणीकरण के बारे में समान है। आप सही पहुंच टोकन प्रदान करते हैं, और आपके लिए सामान्य एपीआई खोले जाएंगे। विकी कहते हैं, एक एक्सेस टोकन एक प्रक्रिया या थ्रेड की सुरक्षा पहचान को घेरने वाली वस्तु है। एक टोकन का उपयोग सुरक्षा निर्णय लेने और कुछ सिस्टम इकाई के बारे में छेड़छाड़ करने वाली जानकारी को संग्रहीत करने के लिए किया जाता है।

सही पहुंच टोकन पास करें और दरवाजा खोला जाएगा

आपको टोकन प्रमाणीकरण का उपयोग क्यों करना चाहिए?

अनुसंधान से पता चलता है कि औसत स्मार्टफोन पर 60-90 ऐप इंस्टॉल किए गए हैं। और उनमें से 90% से अधिक अपने एपीआई को अतिरिक्त सुरक्षा प्रदान करने के लिए पहुंच तंत्र पर निर्भर होंगे। इसे OAuth 2.0 कहा जाता है। हम इस विषय पर बाद में विस्तार से जानेंगे। यदि आप करीब से देखते हैं, तो उपयोगकर्ता सत्र रखने वाले एप्लिकेशन इस टोकन प्रमाणीकरण तंत्र को लागू करते हैं। बहुत ही नाजुक एप्लिकेशन जैसे बैंकिंग ऐप, UPI ऐप, सोशल मीडिया ऐप आदि अपने उपयोगकर्ताओं के व्यक्तिगत डेटा की एक बड़ी मात्रा को रख रहे हैं। यदि यह गलत हाथों में जाता है, तो किसी हैकर या किसी व्यक्ति का कहना है, तो वह अपने लाभ के लिए इन आंकड़ों का दुरुपयोग कर सकता है। उदाहरण के लिए इंस्टाग्राम एप्लिकेशन को लें। क्या होगा अगर Instagram टोकन प्रमाणीकरण मुक्त था? और अब, एक एपीआई है जिसे getUserDetails () एक पैरामीटर उपयोगकर्ता नाम के साथ कहा जाता है। मैं बस एक वेब ब्राउज़र या पोस्टमैन पर एपीआई डाल सकता हूं और एक क्लिक में लाखों उपयोगकर्ताओं का डेटा खोज सकता हूं।

हाँ। वह अब आपके सभी निजी डेटा को हैक कर रहा है।

आपकी मदद के लिए टोकन प्रमाणीकरण दर्ज करें। अब, कोई भी हैकर या कोई अन्य घुसपैठिए आपके एपीआई के माध्यम से प्राप्त नहीं कर सकते हैं जब तक कि वह एक सटीक पहुंच टोकन प्रदान नहीं करता है। ठीक है, अगर वह अपने हाथों को टोकन तक भी पहुंचाता है, तो हमें एक मजबूत सुरक्षा संरचना की तलाश करनी होगी। चलिए उसके बारे में बाद में बात करते हैं।

टोकन प्रमाणीकरण कैसे लागू करें?

लगता है कि 3 उपयोगकर्ता हैं। हैरी, रॉन और हरमाइन। उनमें से प्रत्येक अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके एपीआई लॉगिन () कॉल करके अपने हॉगवर्ट्स खाते में प्रवेश करता है। यदि उपयोगकर्ता नाम और पासवर्ड सही है, तो एपीआई एक सकारात्मक प्रतिक्रिया देगा, और इसके साथ-साथ 'access_token' नामक एक स्ट्रिंग भी देगा। उनके द्वारा प्रदान की गई जानकारी के आधार पर पहुंच टोकन जनरेट किया जाएगा। जैसे यूजरनेम और पासवर्ड। तो, हर एक्सेस टोकन अद्वितीय होगा। हैरी का टोकन पहुंच रॉन से अलग होगा। यह हर्मियोन की तुलना में पूरी तरह से अलग होगा। अब, हैरी API के लिए नवीनतम क्विडडिच मैच जुड़नार की खोज कर सकता है। ()। यदि वे ऐप से लॉगआउट करने और फिर लॉग इन करने का प्रयास करते हैं तो एक अलग एक्सेस टोकन उत्पन्न होगा। लॉर्ड वोल्डेमॉर्ट इस पहुंच टोकन को फिर से बना सकते हैं या गढ़ सकते हैं। लेकिन, यह असंभव नहीं है। हमें वोल्डेमॉर्ट का जीवन किसी भी कीमत पर कठिन बनाना है। चूँकि वह अब तक का सबसे बड़ा जादूगर है, इसलिए यह उसके लिए मुश्किल नहीं होगा कि वह अपने दुश्मनों की पहुँच का अनुमान लगा सके। सही? लेकिन फिर भी उसे सटीक पहुंच टोकन का अनुमान लगाने या खोजने में कुछ समय लगेगा। यदि रिकॉर्ड कहता है कि वह 5 मिनट में सही टोकन का अनुमान लगा सकता है या पा सकता है, तो यह परेशानी है। खैर, वोल्डेमॉर्ट को नहीं पता कि यह तथ्य क्या है कि हम इन सभी एक्सेस टोकन के लिए एक समाप्ति समय निर्धारित कर सकते हैं। और हम उस समाप्ति समय को 4 मिनट के रूप में सेट करने जा रहे हैं। अब, यह एक शानदार कदम है। जब तक वोल्डेमॉर्ट ने पहुंच टोकन पाया है, तब तक यह बेकार हो जाएगा। अब अपने आप को पीठ पर थपथपाएं। आपने अभी-अभी अंधेरे स्वामी को पीटा है। बहुत बढ़िया।

मैं अपने आप में असंतुष्ट हूं

एक्सेस टोकन को कैसे रिफ्रेश करें?

चूंकि आपने पहुंच टोकन के लिए सीमित समय निर्धारित किया है, यह उस समय के बाद समाप्त हो जाएगा। वोल्डेमॉर्ट की तरह, हैरी, रॉन और हर्मियोन भी हॉगवर्ट्स ऐप का उपयोग नहीं कर पाएंगे, जब तक कि उन्हें नवीनतम एक्सेस टोकन प्राप्त न हो। आप एक्सेस टोकन को पुनः प्राप्त करने की योजना कैसे बना रहे हैं? सबसे आसान तरीका है कि आप अपने उपयोगकर्ताओं को फिर से लॉग इन करने के लिए कहें या संकेत दें। लेकिन क्या आपको लगता है कि हर्मियोन को फिर से लॉग इन करने के लिए कहना उचित है, जबकि वह अपनी किताब के आधे हिस्से में है? मैं पसंद नहीं। दिन के अंत में, उपयोगकर्ता अनुभव मायने रखता है। आपके उपयोगकर्ताओं को यह जानने की आवश्यकता नहीं है कि आप You-Know-Who के खिलाफ लड़ रहे हैं। चिंता मत करो। हमारे पास उसका भी समाधान है। एक अन्य API जिसे getrefreshToken () कहा जाता है। जब आप जानते हैं कि, आपका एक्सेस टोकन समाप्त हो गया है, तो आप बस एक पैरामीटर के साथ API getrefreshToken () को रीफ्रेश_टोकन कहते हैं।

मुझे यह GIF बहुत पसंद है। पौराणिक सामान।

रुको… तो अब एक और एपीआई है जिसे getrefreshToken () कहा जाता है ??? गंभीरता से? मेरा हो गया। मैं यहाँ से बाहर हूँ। शायद आप क्या सोच रहे हैं। मैं अनुभव कर चुका हूँ। वहाँ किया गया था कि। वहाँ थोड़ा के लिए रुको। हम उस तक पहुंच जाएंगे। इससे पहले, जब हमने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके ऐप में लॉग इन किया तो हमें केवल access_token के साथ सकारात्मक प्रतिक्रिया मिली। अब, हमें access_token के साथ एक और स्ट्रिंग मिलेगी। इसे कहा जाता है, ताज़ा करें_टोकन। अनुमान लगाओ। हाँ। तुम सही हो। हम इस रिफ्रेश_टोकन का उपयोग एपीआई को कॉल करने के लिए करेंगे, getrefreshToken () और वह एपीआई हमें नवीनतम एक्सेस_टोकन और रिफ्रेश_टोकन देगा।

इसे एक बार और समझाते हुए। आप API लॉगिन () कहते हैं और आपको access_token और ताज़ा_token मिलेगा। सेट समाप्ति समय के बाद, access_token की समय सीमा समाप्त हो जाती है और आपको ऐप का उपयोग जारी रखने के लिए नवीनतम प्राप्त करना होगा। चूंकि आप एक अद्भुत डेवलपर हैं, और आप अपने उपयोगकर्ताओं की परवाह करते हैं, इसलिए आप उन्हें फिर से ऐप में लॉग इन नहीं करते हैं। इसके बजाय, आप getrefreshToken () API को रीफ्रेश_टोकन (जिसे आप लॉगिन () एपीआई कॉल करने के बाद मिला है) के साथ कॉल करेंगे और आपको एक नया access_token और refresh_token मिलेगा। यह एक्सेस_टोकन सेट एक्सपायरी समय के बाद भी समाप्त हो जाएगा। तब आप क्या करेंगे? नवीनतम रिफ्रेश_टोकन का उपयोग करके गेट्रेफ्रेशटोकन () कॉल करें और आपको फिर से access_token और रिफ्रेश_टोकन का एक नया सेट मिलेगा। जब तक उपयोगकर्ता आपके ऐप से लॉग आउट करने का निर्णय नहीं लेता तब तक यह प्रक्रिया जारी रहती है।

जीवन सिर्फ व्यर्थ है और कुछ भी मायने नहीं रखता है और मैं हमेशा थका हुआ हूं

आगे क्या होगा?

मुझे माफ करना दोस्तों। यह थोड़ा बहुत सिद्धांत है। मुझे पता है। कोई और सिद्धांत नहीं, मैं वादा करता हूं। अब मैं आपको प्रोग्रामिंग भाग का उपयोग करके मृत्यु के लिए उकसाऊंगा। जहां वास्तविक काम होता है। मैं इसे एंड्रॉइड पर रेट्रोफिट लाइब्रेरी का उपयोग करके लागू करूंगा। कोटलिन में कोड लिखना। इसे पढ़ने के बाद, अगर आपको लगता है कि मुझे कोई महत्वपूर्ण हिस्सा याद आ गया है, या यदि मैंने कुछ गड़बड़ की है, तो कृपया टिप्पणी करें। यदि आपको यह पसंद है, तो इसे अपने साथी जादूगरों के साथ साझा करें। अगला भाग कुछ ही समय में यहाँ होगा। हैप्पी कोडिंग, लोग।

21 फरवरी, 2020 को मूल रूप से http://ducttapeprogrammer.wordpress.com पर प्रकाशित।

यह सभी देखें

मैं एक संभावित खरीदार को फोन पर एक ई-कॉमर्स वेबसाइट कैसे बेचूं, जिसके साथ मैं संपर्क में हूं, और उसे कम तकनीकी ज्ञान है और उसने पहले वेबसाइट डिजाइन दिखाने के लिए कहा है? चुंबन के लिए कैसे जबकि मित्रता वालीएक फ्रीलांस वेब डेवलपर बनने के लिए वेब डिज़ाइनर के बारे में कितना स्थापित वेब डेवलपर होना चाहिए? मैं एक वेबसाइट बना रहा हूं जो पंजीकृत उपयोगकर्ताओं द्वारा प्रदान किए गए डेटा के आधार पर औसत की गणना करेगा। मैं उपयोगकर्ताओं को नकली यादृच्छिक डेटा जोड़ने से कैसे रोक सकता हूं जो कि अन्य सभी उपयोगकर्ताओं को गलत परिणाम देगा?स्क्रैच से ऐप डेवलप करने में मुझे कितना समय लगेगा? HTML और CSS सीखने में आपको कितना समय लगा? आप mysql पर संग्रहीत डेटा के आकार की गणना कैसे करते हैं? मैजिक लीप स्टॉक कैसे खरीदें