在Windows中工作的node.js代码无法在Mac上工作
问题描述:
我有一个使用Passport通过FB,Twitter和Google登录用户的应用程序。它在Windows上正常工作。现在我不得不搬到Mac(塞拉利昂)。 登录无效。我收到“Error at Strategy.parseErrorResponse。”。 有谁知道可能是什么原因?在Windows中工作的node.js代码无法在Mac上工作
// This is the Facebook strategy...
=========================================================================
// FACEBOOK ================================================================
// =========================================================================
passport.use(new FacebookStrategy({
clientID : configAuth.facebookAuth.clientID,
clientSecret : configAuth.facebookAuth.clientSecret,
callbackURL : configAuth.facebookAuth.callbackURL,
passReqToCallback : true // allows us to pass in the req from our route (lets us check if a user is logged in or not)
},
function(req, token, refreshToken, profile, done) {
// asynchronous
process.nextTick(function() {
// check if the user is already logged in
if (!req.user) {
User.findOne({ 'facebook.id' : profile.id }, function(err, user) {
if (err)
return done(err);
if (user) {
// if there is a user id already but no token (user was linked at one point and then removed)
if (!user.facebook.token) {
user.facebook.token = token;
user.facebook.name = profile.name.givenName + ' ' + profile.name.familyName;
// user.facebook.email = profile.emails[0].value;
user.save(function(err) {
if (err)
throw err;
return done(null, user);
});
}
return done(null, user); // user found, return that user
} else {
// if there is no user, create them
var newUser = new User();
newUser.facebook.id = profile.id;
newUser.facebook.token = token;
newUser.facebook.name = profile.name.givenName + ' ' + profile.name.familyName;
// newUser.facebook.email = profile.emails[0].value;
newUser.save(function(err) {
if (err)
throw err;
return done(null, newUser);
});
}
});
} else {
// user already exists and is logged in, we have to link accounts
var user = req.user; // pull the user out of the session
user.facebook.id = profile.id;
user.facebook.token = token;
user.facebook.name = profile.name.givenName + ' ' + profile.name.familyName;
// user.facebook.email = profile.emails[0].value;
user.save(function(err) {
if (err)
throw err;
return done(null, user);
});
}
});
}));
答
此问题已通过将依赖项的版本更改为最新版本解决。
任何人都不可能在没有看到您的代码的情况下帮助您。有关代码的问题应该包括代码的相关部分和确切的错误消息以及对错误负责的相应代码行。 – jfriend00
终于搞定了。它必须处理依赖版本...... –
要解决这个问题,如果你能解释你做了什么来修复它,以便在将来帮助其他人,那么你可以自己写回答你的问题,并最终接受它。或者,如果这不是问题,你可以描述可能会帮助其他人,那么你可以删除你的问题。 – jfriend00