J'ai une application qui utilise Passport pour vous connecter les utilisateurs à travers FB, Twitter et Google. Cela fonctionne très bien sur Windows. Maintenant, je devais passer à Mac (Sierra). Les connexions ne fonctionnent pas. J'obtiens un "Erreur à Strategy.parseErrorResponse." Quelqu'un sait-il ce qui pourrait être la raison?code Node.js qui fonctionne sous Windows ne fonctionne pas sur 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);
});
}
});
}));
Il est une personne très improbable peut vous aider sans voir votre code. Les questions sur le code devraient inclure les parties pertinentes du code et des messages d'erreur exact avec les lignes de code responsables des erreurs correspondantes. – jfriend00
Finalement, ça a marché. Il a dû faire avec les versions de dépendance ... –
Pour fermer cette question, si vous pouvez expliquer ce que vous avez fait pour le corriger d'une manière qui aiderait d'autres à l'avenir, alors vous pouvez écrire votre propre réponse à votre question et, éventuellement, accepter il. Ou, si ce n'est pas un problème, vous pouvez décrire cela pourrait aider les autres, alors vous pouvez simplement supprimer votre question. – jfriend00