कुछ मिली जानकारी के आधार इस पर काबू पाने के लिए प्रबंधित: एक्सप्रेस में
1. अक्षम सत्र - बस सत्र के मिडलवेयर हटाने
// app.use(session({secret: config.secret}))
2. जब गूगल प्रमाणीकरण का उपयोग क्या वास्तव में होता है एक रीडायरेक्शन नहीं है Google लॉगिन पेज पर और यदि लॉगिन सफल होता है तो यह आपको प्रदान किए गए यूआरएल के साथ वापस भेज देता है।
इसका वास्तव में मतलब है कि एक बार Google कॉलबैक को कॉल करने के बाद आप res.send (टोकन, उपयोगकर्ता) नहीं कर सकते - यह बस काम नहीं करता है (कोई भी विस्तार क्यों कर सकता है?)। तो आप res.redirect("/")
कर क्लाइंट को रीडायरेक्ट करने के लिए मजबूर हैं। लेकिन पूरा उद्देश्य टोकन को पास करना है ताकि आप res.redirect("/?token=" + token)
भी कर सकें।
app.get('/auth/google/callback',
passport.authenticate('google', {
//successRedirect: '/',
failureRedirect: '/'
, session: false
}),
function(req, res) {
var token = AuthService.encode(req.user);
res.redirect("/home?token=" + token);
});
लेकिन क्लाइंट उपयोगकर्ता इकाई कैसे प्राप्त करेगा? तो आप उपयोगकर्ता को उसी तरह से पास भी कर सकते हैं लेकिन यह मेरे लिए सही नहीं लगा (पैरामीटर सूची में पूरी उपयोगकर्ता इकाई को पास कर रहा है ...)। तो मैंने जो किया वह क्लाइंट टोकन का उपयोग करता है और उपयोगकर्ता को पुनर्प्राप्त करता है।
function handleNewToken(token) {
if (!token)
return;
localStorageService.set('token', token);
// Fetch activeUser
$http.get("/api/authenticate/" + token)
.then(function (result) {
setActiveUser(result.data);
});
}
जिसका अर्थ है एक और http अनुरोध - यह मुझे ऐसा लगता है कि शायद मुझे टोकन अवधारणा सही नहीं मिली। मुझे प्रबुद्ध करने के लिए स्वतंत्र महसूस करें।
इसे देखें - यह स्पष्ट रूप से स्पष्ट करता है। https://cloud.google.com/nodejs/getting-started/authenticate-users –
@MuliYulzary धन्यवाद, लेकिन उदाहरण में आपने दिया कि सत्र का अत्यधिक उपयोग है जिसे मैं टालने का प्रयास करता हूं। – chenop