使用passport.js的Google plus用户年龄范围

Google plus user age range using passport.js

本文关键字:用户 范围 plus Google passport js 使用      更新时间:2023-09-26

我正在使用passportjs和Jared Hanson的OAuthStrategy2(https://github.com/jaredhanson/passport-google-oauth)。我想在配置文件对象中获取用户年龄范围,但无法获取。即使我正在使用https://www.googleapis.com/auth/plus.login在一个范围内,谷歌保证将返回年龄范围。有没有办法通过passport获得这些信息,或者我将被迫向谷歌过去的passport发出REST请求?

这是我使用的范围的护照认证:

        app.get('/auth/login/google',
        passport.authenticate('google', {
            scope: ['https://www.googleapis.com/auth/plus.login',
                'https://www.googleapis.com/auth/userinfo.email'
            ]
        }),
        function(req, res) {});

这就是我得到的结果:

{ 
  provider: 'google',
  id: '115346138147341087148',
  displayName: 'Testing Account',
  name: { familyName: 'Account', givenName: 'Testing' },
  emails: [ { value: undefined } ],
  _raw: '{'n "id": "115346138147341087148",'n "name": "Testing Account",'n "given_name":       "Testing",'n "family_name": "Account",'n "link":   "https://plus.google.com/115346138147341087148",'n "picture":   "https://lh3.googleusercontent.com/-  XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",'n "gender": "female",'n "locale": "en"'n}'n',
  _json: 
   { id: '115346138147341087148',
     name: 'Testing Account',
     given_name: 'Testing',
     family_name: 'Account',
     link: 'https://plus.google.com/115346138147341087148',
     picture: 'https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg',
  gender: 'female',
  locale: 'en' } 
}

提前谢谢大家。

正如有人在其他地方指出的那样(可能是Stackoverflow或类似的东西),使用passport谷歌无法获得更多信息。你和我必须使用官方的谷歌API方法来获取更多信息。不幸的是,无法选择将profileFields添加到策略中,以在响应中请求更多信息(因为护照facebook可能会这样做)。