उस समस्या के लिए मुझे सबसे अच्छा समाधान एक कुकी के साथ अपेक्षित पृष्ठ पर पुनर्निर्देशित करना होगा जिसमें JWT है।
res.json
का उपयोग करना केवल एक json प्रतिक्रिया भेजेगा और पुनर्निर्देशित नहीं करेगा। यही कारण है कि यहां अन्य सुझाए गए उत्तर से मेरे सामने आई समस्या का समाधान नहीं होगा।
तो मेरा समाधान होगा:
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
session: false,
successRedirect : '/',
failureRedirect : '/'
}), (req, res) => {
var token = req.user.jwtoken;
res.cookie('auth', token); // Choose whatever name you'd like for that cookie,
res.redirect('http://localhost:3000'); // OR whatever page you want to redirect to with that cookie
});
पुनर्निर्देशन के बाद, आप कुकी को सुरक्षित रूप से पढ़ सकते हैं और उम्मीद के मुताबिक उस जेडब्ल्यूटी का उपयोग कर सकते हैं। (आप वास्तव में प्रत्येक पृष्ठ लोड पर कुकी पढ़ सकते हैं, यह जांचने के लिए कि कोई उपयोगकर्ता लॉग इन है या नहीं)
जैसा कि मैंने पहले उल्लेख किया है, JWT के साथ एक क्वेरी परम के रूप में पुनर्निर्देशित करना संभव है, लेकिन यह बहुत असुरक्षित है। कुकी का उपयोग करना सुरक्षित है, और अभी भी सुरक्षा समाधान हैं जिनका उपयोग आप इसे और भी सुरक्षित बनाने के लिए कर सकते हैं, एक क्वेरी परम के विपरीत जो है स्पष्ट रूप से असुरक्षित।