के लिए क्लाइंट साइड ऐप में उपयोगकर्ता-आईडी संग्रहीत करना मेरे पास एक नोड-एक्सप्रेस आरईएसटी एपीआई है जहां मैं उपयोगकर्ता नियंत्रक को एक GET अनुरोध कर सकता हूं - /users/:id
- जहां :id
डेटाबेस में संग्रहीत उपयोगकर्ता-आईडी नंबर है। मेरे पास एक रिएक्ट-रेडक्स क्लाइंट साइड ऐप भी है जो एपीआई को कॉल करता है। अनुरोध करने के लिए, क्लाइंट ऐप को उपयोगकर्ता-आईडी तक पहुंच की आवश्यकता है, लेकिन मुझे वर्तमान में क्लाइंट पक्ष पर उपयोगकर्ता-आईडी को स्टोर करने का सबसे अच्छा तरीका नहीं है।एपीआई अनुरोध
अतिरिक्त संदर्भ के लिए, मेरा एपीआई क्लाइंट को JWT token लॉगिन पर भेजता है जो उपयोगकर्ता-आईडी रखता है; क्लाइंट ऐप localStorage
में टोकन बचाता है। जब ग्राहक अनुरोध करता है, तो एपीआई सत्यापित करता है कि डीकोडेड टोकन में उपयोगकर्ता-आईडी क्लाइंट को प्रतिक्रिया भेजने से पहले यूआरएल में मौजूद आईडी से मेल खाता है।
मैं दो संभावित समाधान देखने: ग्राहक पर
- डिकोड जेडब्ल्यूटी टोकन और एपीआई कॉल करने के लिए उपयोगकर्ता के आईडी टोकन में संग्रहीत का उपयोग करें। मुझे लगता है कि यह एक संभावित सुरक्षा जोखिम है, क्योंकि मुझे विश्वास है कि मुझे क्लाइंट ऐप पर रहस्य संग्रहित करने की आवश्यकता होगी। साथ ही, जो भी टोकन है उसे उपयोगकर्ता की जानकारी तक पहुंच प्राप्त हो सकती है।
- एपीआई उपयोगकर्ता-आईडी प्रमाणीकरण पर भेजता है, और ग्राहक इसे
localStorage
पर संग्रहीत करता है। (मुझे लगता है कि रेडक्स स्टोर में इसे संग्रहीत करना काम करेगा क्योंकि उपयोगकर्ता रीफ्रेश कर सकता है, उपयोगकर्ता-आईडी की स्थिति साफ़ कर सकता है)। मेरी समझ यह है कि यह सबसे अच्छा अभ्यास नहीं है, क्योंकि मुझे इस दृष्टिकोण को लेकर कई अन्य क्लाइंट साइड ऐप्स नहीं दिखते हैं।
कौन से दो में से एक एक बेहतर समाधान है, या फिर एक और दृष्टिकोण है कि मैं पर विचार नहीं कर रहा हूँ है?
आपके पहले विकल्प का जवाब: क्या यह आरईएसटी एपीआई सम्मेलनों के खिलाफ नहीं होगा? असल में यदि कोई आईडी प्रदान नहीं की जाती है, जो '/ users /' जैसा दिखाई देगी, तो आप कहेंगे कि उसे टोकन से आईडी प्राप्त करनी चाहिए, लेकिन '/ उपयोगकर्ता /' पर पहुंचने से संकेत मिलता है कि ग्राहक सभी उपयोगकर्ताओं की सूची प्राप्त करना चाहता है । – Nahro