JWT विनिर्देश केवल पेलोड और इसे कैसे भेजा जाता है, का वर्णन करता है, लेकिन प्रमाणीकरण प्रोटोकॉल को खुला छोड़ देता है, जो लचीलेपन की अनुमति देता है, लेकिन दुर्भाग्य से, लचीलापन एंटीपैटर्न और मिसडाइनस को जन्म दे सकता है।
मैं JWT प्रमाणीकरण के लिए कुछ अच्छी तरह से सोचा और परीक्षण किए गए एंटरप्राइज़ पाटर की तलाश कर रहा हूं, जिसका मैं उपयोग या अनुकूलन कर सकता हूं, लेकिन मैं कुछ पूरा करने में विफल रहा हूं।
मैं क्या सोच रहा था:
- जब कोई प्राधिकरण शीर्ष लेख पूरा नहीं होता है, या JWT टोकन अमान्य है, या समाप्त हो गया है, तो HTTP 401 भेजें
- REST चैनल को प्रमाणित, उपयोग / लॉगिन करने के लिए JSON ऑब्जेक्ट के रूप में उपयोगकर्ता नाम और पासवर्ड भेजें
- टोकन को जीवित रखने के लिए, / रिऐलिव REST चैनल का उपयोग करें, इसे हर N (5) मिनट पर कॉल करें, नया JWT टोकन प्राप्त करें और प्रत्येक कॉल के बाद मौजूदा एक को बदलें (टोकन एम समाप्त होने के बाद M (15) मिनट)
हालाँकि, जो मुझे परेशान करता है, वह उस / चैनल की आवश्यकता है। दूसरी ओर, यह उपयोगकर्ता को दूर रहने के लिए प्रमाणीकरण को रोकने के लिए मुझे मजबूर करता है, भले ही उपयोगकर्ता दूर हो (निर्णय, अगर हम चाहते हैं कि अभी तक निगरानी पूरी नहीं हुई है) और निश्चित रूप से, वे अतिरिक्त कॉल और प्रोटोकॉल के लिए अतिरिक्त जटिलता हैं। क्या दिलचस्प होगा, यह है कि सर्वर स्वतः टोकन को बढ़ाता है। सत्र-आधारित वातावरण में, टाइमस्टैम्प को रीसेट करने से ऐसा होता है, हालांकि, सर्वर को हर बार नया टोकन भेजना होगा, शायद हर बार नहीं, लेकिन एक बार टोकन आर (समाप्ति, 10) मिनट में समाप्त होने वाला है। लेकिन प्रतिक्रिया शरीर में इसे रखने का मतलब JSON प्रतिक्रिया प्रोटोकॉल को संशोधित करना होगा (इसलिए, समाधान आक्रामक और पारदर्शी नहीं है), और एक अतिरिक्त HTTP हेडर डाल रहा है जो क्लाइंट प्रक्रिया नहीं कर सकता है, जरूरी नहीं कि यह एक अच्छा पैटर्न हो। मैं'
क्या कोई तैयार उद्यम पैटर्न है जो मेरे खुले बिंदुओं का जवाब देता है? क्या मेरा प्रोटोकॉल ड्राफ्ट एक विश्वसनीय विचार है? मैं खरोंच से डिजाइन की तुलना में कुछ तैयार उपयोग करना चाहता हूं।