2013-09-29 1 views
3

Как настроить доступ к API Google для запроса изображения пользователя при аутентификации? В настоящее время 'профиль' содержит только следующие свойства после того, как пользователь аутентифицированным: преуспевающимPassportjs - Как я могу запросить изображение пользователя с помощью стратегии Google?

profile.identifier: (строка)

profile.displayName: (строка)

profile.emails: (объект)

имя: (объект)

Невозможно ли запросить изображение учетной записи пользователя? Вот моя текущая конфигурация паспорта/стратегия Google:

passport.use(new GoogleStrategy({ 
    clientID: CLIENT_ID, 
    clientSecret: CLIENT_SECRET, 
    returnURL: 'http://localhost:3000/auth/google/return', 
    realm: 'http://localhost:3000' 
    }, 
    function(identifier, profile, done) { 
    console.log('identifier ' + identifier) 
    for(var p in profile){ 
     console.log(p + ' : ' + profile[p]) 
     if(p === 'name'){ 
      for(var n in profile[p]){ 
       console.log(n + ' : ' + profile[p][n]) 
      } 
     } 
    } 
    } 
)); 

Вы можете видеть, что я осматриваю профиль, чтобы увидеть, что информация возвращается. Я предполагаю, что это нужно как-то настроить на консоли Google Api. Является ли это функцией api для Google+?

ответ

7

Объект профиль возвращаемый паспорт, только отображает несколько полей:

profile.id = json.id; 
profile.displayName = json.name; 
profile.name = { familyName: json.family_name, 
       givenName: json.given_name }; 
profile.emails = [{ value: json.email }]; 

Но это даст вам обратно _json свойство, которое содержит более подробную информацию:

Try:

var picture = profile._json['picture']; 
+0

Это интересно, потому что я видел другие примеры людей, получающих информацию из свойства profile._json. Но это свойство, похоже, не существует в моем профиле obj. profile._json === 'undefined' – Nick

+2

Вы используете стратегию Google OpenID. Вместо этого попробуйте OAuth2. Это возвращает свойство _json, о котором я упоминал в своем ответе: https://github.com/jaredhanson/passport-google-oauth –

+0

Отлично. OAuth2 дает мне то, что мне нужно. Благодаря! – Nick

Смежные вопросы