2017-10-18 3 views
0

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); 
       }); 

      } 
     }); 

    })); 
+0

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

+0

Finalement, ça a marché. Il a dû faire avec les versions de dépendance ... –

+0

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

Répondre

0

Ce problème a été résolu en modifiant les versions des dépendances vers les versions les plus récentes.