【发布时间】:2017-03-23 08:16:02
【问题描述】:
我可以使用 passport-facebook 进行身份验证,并将用户 ID 和用户名从 facebook 存储到我的数据库中。我正在从角度控制器查询 nodejs:
MyApp.controller("FacebookLogin", function($scope, $http){
$scope.login = function(){
$http.get("/facebooklogin").then(function(response){
if(response.data){
console.log(response.data); // nothing is logged here
} else {
console.log("No Data");
}
});
}
});
在节点中:
app.get('/facebooklogin', passport.authenticate('facebook'));
app.get('/auth/facebook/callback', passport.authenticate('facebook', function(err, user, info){
console.log(err, user, info);
if(err) throw err;
// res.send(user); //Do I send the user info from here?
}));
我想将用户 ID 发送到 Angular 以存储在 localStorage 中,并使用它来查询数据库以获取未来的请求。这是正确的方法吗?这是一个SPA。我看到在我的浏览器中创建了一个connect.sid cookie。如果它具有userid,我如何从中提取userid,或者我在我的post/get 中发送什么,nodejs 通过会话识别?
我确实读过但不明白这两件事到底是做什么的:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
非常感谢。
【问题讨论】:
标签: angularjs node.js passport.js passport-facebook