I'm try use passport-facebook to login with facebook but I'm get error cannot set id of underfined . Here is my code
model
var userSchema = new Schema({
facebok:{
id:String,
token:String,
email:String,
name:String
}
});
And here is routes
passport.use(new FacebookStrategy({
clientID: '1952938688317166',
clientSecret: '776804e688cc1eb238b1c6b211164b69',
callbackURL: "http://localhost:2912/auth/facebook/callback",
profileFields: ['id', 'displayName', 'email'],
callbackUrl :process.env.FB_CALLBACKURL
},
function(accessToken, refreshToken, profile, done) {
process.nextTick(function() {
User.findOne({'facebook.id':profile.id},function(err,user) {
if(err)
return done(err);
if(user){
return done(null,user);
}else{
var newUser = new User();
newUser.facebook.id = profile.id;
newUser.facebook.token = accessToken;
newUser.facebook.name = profile.name.giveName +'' + profile.name.familyName;
newUser.facebook.email = profile.emails[0].value;
newUser.save(function(err) {
if(err)
console.log(err);
return done(null,newUser);
})
}
});
});
}
));
app.get('/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }));
app.get('/auth/facebook', passport.authenticate('facebook',{scope:'email'}));
Where is my wrong? Please help me
via Thanh Tùng
No comments:
Post a Comment