我是fullstack应用程序的新手,我刚刚设法用护照实现facebook身份验证。现在我已正确设置我的架构/模型,护照以我想要的方式在mongodb中保存facebook个人资料。
现在我想让mongodb中的条目与我的Angular代码交谈。现在我在我的护照路线上做了一个黑客,如果有一个req.user(每个mongoose架构都有一个facebook对象),我将该用户设置为Angular中的rootScope.user,使用如下cookie(见下文)护照代码中的cookie一直在底部重新发送。)
var user = $cookies.user;
$rootScope.currentUser = user;
对于可伸缩性来说,这显然不是一个好主意。如何获取存储在mongo中的facebook数据(感谢护照),让Angular与它交谈?我想象一种路由的$ http请求。我是否会提出要求,说' / profile'如下我的护照代码?我很困惑,我知道这是我需要理解的核心概念。
// if no error, this gets hit:
app.get('/auth/facebook/callback', function (req, res, next) {
console.log('on the way back');
passport.authenticate('facebook', function (err, user, redirectURL) {
console.log(' in the callback ');
if (err) {
return res.redirect('/#!/login');
}
if (!user) {
return res.redirect('/#!/signup');
}
if (req.user) {
console.log(req.user);
res.cookie('user', JSON.stringify(req.user));
}
//actually storing the fact that they are logged in:
req.login(user, function (err) {
if (err) {
return res.redirect('/#!/login');
}
return res.redirect('/');
});
})(req, res, next);
});
app.get('/profile', function(req, res, next) {
// get the data here from Mongo somehow?
});