अलविदा छोटे सेशन - वेब पर कुकी मैनेजमेंट को बेहतर बनाने के लिए, सर्विस वर्कर के इस्तेमाल का प्रस्ताव

विलियम डेनिस
ओवेन कैंपबेल-मूर

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

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

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

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

वेब पर सुरक्षित लंबे सेशन पर माइग्रेट करने के लिए व्यावहारिक सुझाव

यहां, इस पोस्ट में उस नई तकनीक के बारे में बताया गया है जिसका हम सुझाव दे रहे हैं. इसे 2-Cookie-Handoff (2CH) के नाम से जाना जाता है. उम्मीद है कि हम इस लेख को लोगों के सुझाव, शिकायत या राय जानने के लिए इस्तेमाल करेंगे. इससे हमें पता चलेगा कि क्या यह तरीका अच्छा लग रहा है. अगर ऐसा है, तो इंडस्ट्री के साथ मिलकर काम करें, ताकि 2CH का इस्तेमाल करने के सबसे सही तरीके तैयार किए जा सकें.

सर्विस वर्कर ऐसी नई टेक्नोलॉजी है जो Chrome, Firefox, Opera जैसे कई ब्राउज़र पर काम करती है. यह जल्द ही Edge पर उपलब्ध होगी. इनकी मदद से, मौजूदा पेजों में बदलाव किए बिना, क्लाइंट पर एक सामान्य कोड पॉइंट के ज़रिए, अपनी साइट पर आने वाले सभी नेटवर्क अनुरोधों को रोका जा सकता है. इससे, लॉग इन किए हुए उपयोगकर्ताओं के लिए "2CH वर्कर" सेट अप किया जा सकता है. यह मोबाइल ऐप्लिकेशन की तरह ही, आपके पेज की ओर से किए जा रहे सभी नेटवर्क अनुरोधों को रोक सकता है और टोकन की अदला-बदली कर सकता है.

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

अगर आपके सर्वर के पास पहले से ऐसा एंडपॉइंट नहीं है, तो वह सिर्फ़ ब्राउज़र सेशन मैनेजमेंट के लिए एंडपॉइंट बना सकता है.

2-कुकी-हैंडऑफ़ का क्रम

सर्विस वर्कर के साथ दो टोकन वाला पैटर्न, OAuth 2.0 पैटर्न को करीब-करीब फ़ॉलो करता है. अगर पहले से ही OAuth टोकन एंडपॉइंट चलाया जा रहा है, तो वेब की पुष्टि करने के लिए इसे सर्विस वर्कर के साथ फिर से इस्तेमाल किया जा सकता है.

आप यह भी सोच रहे होंगे कि अगर उपयोगकर्ता किसी ऐसे ब्राउज़र पर जाता है जिसमें सर्विस वर्कर काम नहीं करते, तो क्या होगा. अगर ऊपर दिए गए तरीके को लागू किया जाता है, तो उन्हें कोई अंतर नहीं दिखेगा और वे छोटे सेशन का सामना करते रहेंगे.

हमने क्लाइंट और बैकएंड का एक सैंपल पब्लिश किया है. हमें उम्मीद है कि इसे खुद आज़माएं और सेशन मैनेजमेंट से जुड़े एक सर्वे में हिस्सा लें.