हैंडलिंग मेरे पास मेरे व्यक्तिगत/शौक एप्लिकेशन के लिए कोआ आधारित नोड.जेएस बैकएंड है।JWT समाप्ति और JWT पेलोड अपडेट
मैंने जेडब्ल्यूटी टोकन के साथ सत्र प्रबंधन को कार्यान्वित किया। क्लाइंट (एंगुलरजेएस) को सफल लॉगिन के बाद टोकन मिल जाता है और कहीं भी टोकन स्टोर करता है (वर्तमान में sessionStorage
में लेकिन इस प्रश्न के प्रयोजनों के लिए इससे कोई फर्क नहीं पड़ता)। जब मैं उपयोगकर्ता रिकॉर्ड जो जेडब्ल्यूटी प्रतिनिधित्व करता है, कहते हैं, उपयोगकर्ता 2FA पर कर दिया, इसलिए मैंने उससे पूछा उसका फ़ोन नंबर प्रदान करने के लिए है और मैं चाहता हूँ अद्यतन करने की आवश्यकता
:
मैं दो प्रश्न हैं इस फोन नंबर को उपयोगकर्ता के रिकॉर्ड में सेट करने के लिए। वर्तमान में, फोन नंबर पर एक सफल सत्यापन के बाद मैं अपने बैकएंड को उपयोगकर्ता रिकॉर्ड अपडेट करने के लिए कॉल करता हूं और मैं अद्यतन उपयोगकर्ता रिकॉर्ड के साथ एक नया जेडब्ल्यूटी टोकन बनाता हूं (मैं जेडब्ल्यूटी टोकन से संवेदनशील जानकारी को हैश पासवर्ड की तरह बाहर करता हूं, लेकिन मुझे पसंद है क्लाइंट साइड उपयोग के लिए फोन नंबर शामिल करने के लिए)। क्या कोई नया टोकन बनाना ठीक है जब कुछ क्रेडेंशियल इस नए टोकन के साथ मौजूदा क्लाइंट साइड टोकन को बदलते हैं और अपडेट करते हैं? क्या मुझे कभी भी एक और टोकन नहीं बनाना चाहिए, केवल एक ही बनाने के लिए और केवल सफल प्रमाणीकरण पर? फिर टोकन में पेलोड कैसे अपडेट करें?
मुझे समय-समय पर समाप्त होने वाले जेडब्ल्यूटी टोकन को कैसे संभालना चाहिए? मेरे दिमाग में मेरे पास 3 (संभव) परिदृश्य हैं:
2.1। जेडब्ल्यूटी 15 मिनट का कहना है कि छोटे जीवन में सेट है। यदि बैकएंड सर्वर 401 अनधिकृत 'अमान्य टोकन' के साथ जवाब देता है (मुझे लगता है कि यह
koa-jwt
का डिफ़ॉल्ट व्यवहार है) तो मैं अपने क्लाइंट को स्वचालित रूप से लॉग आउट करता हूं और पुनः प्रमाणीकरण की आवश्यकता होती है। लेकिन मैंने एक पूरक मिडलवेयर भी स्थापित किया जो रीफ्रेश किए गए समाप्ति के साथ टोकन को फिर से बनाने के लिए बैकएंड पर श्रृंखला में आखिरी है और ग्राहक रीफ्रेश किए गए एक के साथ मौजूदा टोकन को भी बदल देगा। इसलिए यदि उपयोगकर्ता सक्रिय है और सफलता के मामले में प्रत्येक संरक्षित एपीआई कॉल एप्लिकेशन का उपयोग करता है, तो पुराने टोकन को प्रतिस्थापित करने के लिए एक नया टोकन तैयार करेगा।2.2। जेडब्ल्यूटी लंबे समय तक जीवित है, 1 सप्ताह का कहना है, और यदि यह समाप्त हो जाता है तो मैं ग्राहक से पुनः प्रमाणीकरण में ऑप्ट-इन करता हूं।
2.3। https://tools.ietf.org/html/rfc6749#section-1.5 कॉपी करें। सफल प्रमाणीकरण के बाद जेडब्ल्यूटी टोकन बनाते समय हम एक access_token के साथ-साथ refresh_token भेजते हैं। जब access_token की समयसीमा समाप्त हो जाती है और सर्वर HTTP 401 'अमान्य टोकन' (
koa-jwt
डिफ़ॉल्ट) के साथ प्रतिक्रिया करता है तो क्लाइंट बैक किए गए रीफ्रेश_टोकन को एक नई access_token (और वैकल्पिक रूप से एक नया refresh_token) की आवश्यकता होती है। इस मामले में मैं पूरी तरह से समझ नहीं पा रहा हूं कि नया टोकन प्रदान करने के लिए पुराने access_token के विरुद्ध refresh_token कैसे सत्यापित किया गया है? या हमें refresh_token क्यों करने की आवश्यकता है?
ऊपरी विषयों (जेडब्ल्यूटी अपडेट और जेडब्ल्यूटी एक्स समाप्ति) पर कोई सामान्य सलाह उपयोगी होगी।
क्यों न केवल कुकी का उपयोग करें? – Kebman