और हाँ, व्यक्तिगत! लुकास साओ पाउलो से यहाँ है।
आधुनिक वेब ऐप्स में उपयोगकर्ता लॉगिन लागू करते समय, JSON वेब टोकन (JWT) उद्योग मानक हैं। लेकिन मैंने बहुत से डेवलपर्स को जेडब्ल्यूटी को संभालने के लिए पुस्तकालयों का उपयोग करते हुए देखा है, बिना यह समझे कि वे वास्तव में क्या हैं।
JWT के तीन भाग
यदि आप JWT को देखते हैं, तो यह केवल तीन यादृच्छिक-दिखने वाली स्ट्रिंग्स हैं जो बिंदुओं द्वारा अलग की गई हैं: `header.payload.signature`।सबसे बड़ी ग़लतफ़हमी यह है कि JWT एन्क्रिप्टेड होते हैं। वे नहीं हैं। हेडर और पेलोड केवल बेस64 एन्कोडेड हैं। जो कोई भी टोकन को रोकता है वह इसे डीकोड कर सकता है और आपके पेलोड को पढ़ सकता है (यही कारण है कि आपको कभी भी उनके अंदर पासवर्ड या संवेदनशील जानकारी नहीं डालनी चाहिए!)।
तीसरा भाग, हस्ताक्षर, वह है जो इसे सुरक्षित बनाता है। यह साबित करता है कि टोकन आपके सर्वर द्वारा जेनरेट किया गया था और उसके साथ कोई छेड़छाड़ नहीं की गई है।
डिबगिंग के लिए डिकोडिंग टोकन
जब मैं फ्रंटएंड प्रमाणीकरण समस्याओं को डीबग कर रहा होता हूं, तो मैं हमेशा स्थानीय JWT डिकोडर टूल का उपयोग करता हूं। मैं टोकन पेस्ट करता हूं, और यह तुरंत मुझे JSON पेलोड दिखाता है ताकि मैं जांच कर सकूं कि उपयोगकर्ता भूमिकाएं और समाप्ति टाइमस्टैम्प सही हैं या नहीं। चूँकि टूल पूरी तरह से ब्राउज़र में चलता है, मेरे सत्र टोकन कभी भी किसी तीसरे पक्ष के संपर्क में नहीं आते हैं।अपने टूल को समझें, और आप बहुत बेहतर कोड लिखेंगे!