में पासपोर्ट जेएस सत्र डेटा पिछला अंत तक पासपोर्ट सत्र सूचनाएं भेजने का सबसे अच्छा तरीका क्या है?Angular2
मेरा आवेदन जो पोर्ट 3000 पर काम करता है। पहले दो फेसबुक लॉगिन और पुनर्निर्देशन के लिए हैं।
app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
successRedirect : 'http://localhost:8000/',
failureRedirect : '/fail'
})
);
app.get('/auth/userdata', isLoggedIn, function(req, res) {
Donator.findById(req.user, function(err, fulluser) {
if (err) throw err;
res.json(fulluser);
})
});
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
next();
} else {
res.json(false);
}
};
पासपोर्ट config.js
'facebookAuth' : {
'clientID' : 'secret',
'clientSecret' : 'secret',
'callbackURL' : 'http://localhost:3000/auth/facebook/callback'
},
तो मेरी Angular2 आवेदन में: अगले एक डेटाबेस से उपयोगकर्ता डेटा (प्रयोक्ता आईडी req.user
में संग्रहित किया जाना चाहिए)
routes.js प्राप्त करने के लिए है मैं http://localhost:3000/auth/facebook
पर जा सकता हूं, एफबी लॉगिन पेज पर रीडायरेक्ट किया जा सकता है और यदि सफलता http://localhost:3000/auth/login/callback
पर रीडायरेक्ट की जाती है जो मुझे http://localhost:8000/
पर ले जाती है।
और मेरे Angular2 अनुप्रयोग है कि बंदरगाह 8000
getUser(){
this.http.get('http://localhost:3000/auth/userdata')
.map(res => return res.json())
}
हर getUser()
पर काम करता है में कहा जाता है, यह रिटर्न 'असत्य'। क्या इस सत्र डेटा को अलग-अलग बंदरगाह पर मेरे फ्रंटएंड पर "इंजेक्ट" करने का एक आसान और सुरक्षित तरीका है? साथ ही जब मैं ब्राउज़र में http://localhost:3000/auth/userdata
पर जाता हूं तो मैं यह प्रोफ़ाइल JSON के रूप में प्रस्तुत कर सकता हूं।
जब मैं उसी पोर्ट पर बैकएंड और फ्रंटेंड सेट करता हूं तो यह काम करता है, फेसबुक, ट्विटर, गूगल, स्थानीय, सब कुछ ठीक है और getUser
पूर्ण उपयोगकर्ता प्रोफ़ाइल देता है।
मुझे उम्मीद है कि यह स्पष्ट है।
पोर्ट '3000' पर आप अपने कोणीय 2 ऐप की सेवा क्यों नहीं करते? –
मैं फ्रंटेंड को अब अलग मेजबानों पर बैकएंड समाप्त करना चाहता हूं। – dmh126
मैं एक ही बंदरगाह पर सबकुछ चलाने का सुझाव दूंगा। आपके पास अलग-अलग बंदरगाहों पर दो सर्वर हो सकते हैं, लेकिन [एक्सप्रेस-http-proxy] (https://www.npmjs.com/package/express-http-proxy) का उपयोग करके उनमें से एक को प्रॉक्सी कर सकते हैं। –