我正在尝试使用Passport.js实现Facebook登录。我在文档中没有看到有关数据库的任何内容,但是出现了一个错误消息“未定义用户”,我怀疑这与数据库中缺少的内容有关。
<a href="/loginFacebook">Login with facebook</a>
passport.use(new FacebookStrategy({
clientID: 1227008554140703,
clientSecret: "e508c9661b413e9a56d616350e80f201",
callbackURL: "http://localhost:8080/facebook/callback"
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ facebookId: profile.id }, function (err, user) {
console.log(profile.id);
return cb(err, user);
});
}
));
passport.serializeUser(function(user, cb) {
console.log("serialize it");
cb(null, user);
});
passport.deserializeUser(function(obj, cb) {
console.log("deserialize it");
cb(null, obj);
});
app.use(passport.initialize());
app.use(passport.session());
app.get('/loginFacebook',
passport.authenticate('facebook'));
app.get('/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
console.log("redirecting back");
res.redirect('/');
});