2017-10-18 2 views
0

Ich habe eine App, die Passport verwendet, um Benutzer über FB, Twitter und Google anzumelden. Es funktioniert gut unter Windows. Jetzt musste ich nach Mac (Sierra) umziehen. Die Logins funktionieren nicht. Ich erhalte einen "Fehler bei Strategy.parseErrorResponse." Weiß jemand, was könnte der Grund sein?node.js Code, der in Windows funktioniert, funktioniert nicht auf 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

Es ist sehr unwahrscheinlich, dass jemand Ihnen helfen kann, ohne Ihren Code zu sehen. Fragen zum Code sollten die relevanten Teile des Codes und genaue Fehlermeldungen mit den entsprechenden Codezeilen enthalten, die für die Fehler verantwortlich sind. – jfriend00

+0

Endlich funktioniert es. Es hat mit Abhängigkeitsversionen zu tun ... –

+0

Um dieses Problem zu schließen, wenn Sie erklären können, was Sie getan haben, um es in einer Weise zu beheben, die anderen in Zukunft helfen würde, dann können Sie Ihre eigene Antwort auf Ihre Frage schreiben und schließlich akzeptieren es. Oder, wenn es kein Problem ist, das Sie beschreiben können, das anderen helfen könnte, dann können Sie einfach Ihre Frage löschen. – jfriend00

Antwort

0

Dieses Problem wurde gelöst, indem die Versionen der Abhängigkeiten auf die neuesten Versionen geändert wurden.