मैं JWT- आधारित प्रमाणीकरण को हमारे नए REST API पर लागू करना चाहूंगा। लेकिन चूंकि समाप्ति टोकन में सेट है, तो क्या इसे स्वचालित रूप से लम्बा करना संभव है? मैं नहीं चाहता कि उपयोगकर्ता हर X मिनट के बाद साइन इन करें, यदि वे उस अवधि में एप्लिकेशन का सक्रिय रूप से उपयोग कर रहे थे। यह एक बड़ा UX विफल होगा।
लेकिन समय सीमा समाप्त होने से एक नया टोकन बनता है (और यह समाप्त होने तक पुराना अभी भी वैध है)। और प्रत्येक अनुरोध के बाद एक नया टोकन बनाना मेरे लिए मूर्खतापूर्ण लगता है। जब एक से अधिक टोकन एक ही समय में मान्य हों, तो सुरक्षा समस्या जैसा लगता है। बेशक मैं एक ब्लैकलिस्ट का उपयोग कर पुराने इस्तेमाल को अमान्य कर सकता हूं लेकिन मुझे टोकन स्टोर करने की आवश्यकता होगी। और JWT के लाभों में से एक भंडारण नहीं है।
मैंने पाया कि कैसे Auth0 ने इसे हल किया। वे न केवल JWT टोकन बल्कि एक ताज़ा टोकन का उपयोग करते हैं: https://docs.auth0.com/refresh-token
लेकिन फिर, इसे (Auth0 के बिना) लागू करने के लिए मुझे ताज़ा टोकन स्टोर करने और उनकी समाप्ति बनाए रखने की आवश्यकता होगी। फिर असली फायदा क्या है? केवल एक टोकन क्यों नहीं है (JWT नहीं) और सर्वर पर समाप्ति को बनाए रखें?
क्या अन्य विकल्प हैं? क्या JWT का उपयोग इस परिदृश्य के लिए अनुकूल नहीं है?