2016-11-29 2 views
0

Я разработал приложение node.js с именем google. Я разработал логин google, используя.Некоторые пользователи не могут войти в мое приложение для Google

"passport": "^0.3.2" 
"passport-google-oauth": "^1.0.0" 

Мое беспокойство заключается в том, что лишь немногие пользователи могут получить доступ к этому.

Вот реализация

[..] 

module.exports = function (passport, config) { 

    // used to serialize the user for the session 
    passport.serializeUser(function (user, done) { 
     console.log(user.id); 
     done(null, user); 
    }); 

    // used to deserialize the user 
    passport.deserializeUser(function (user, done) { 
     console.log("before derializing"); 
     done(null, user); 
    }); 

    passport.use(
     new GoogleStrategy(
      { 
       clientID: config.googleAuth.clientID, 
       clientSecret: config.googleAuth.clientSecret, 
       callbackURL: config.googleAuth.callbackURL 
      }, 
      function (token, refreshToken, profile, done) { 
       process.nextTick(function() { 
        console.log("user is authenticated" + profile.displayName); 
        //TODO sign up 
        done(null, profile); 
       }); 
      } 
     ) 
    ); 
}; 

Цените вам помощь

+0

У вас есть какие-то исключения или какая-либо другая дополнительная информация? –

ответ

0

нашел ответ .....

В этом я сохранил профиль (профиль объекта происходит от Google), как объект сеанса. И некоторые объекты профиля содержат специальные символы, которые вызывают ошибки при настройке сеанса в паспорте.

Таким образом, поддержание отдельного объекта для сеанса позволило решить эти проблемы, как показано ниже.

passport.use(
    new GoogleStrategy(
     { 
      clientID: config.googleAuth.clientID, 
      clientSecret: config.googleAuth.clientSecret, 
      callbackURL: config.googleAuth.callbackURL 
     }, 
     function (token, refreshToken, profile, done) { 
      process.nextTick(function() { 
       console.log("user is authenticated" + profile.displayName); 
       //TODO sign up 
       done(null, { 
        displayName: profile.displayName 
       }); 
      }); 
     } 
    ) 
);