我使用了来自Jared Hanson(https://github.com/jaredhanson/passport-google-oauth)的OAuthStrategy2的passportjs。我想在配置文件对象中获取用户年龄范围,但我无法获得它。即使我在范围内使用https://www.googleapis.com/auth/plus.login,谷歌保证也会返回年龄范围。有没有办法通过护照获取此信息或我将被迫提出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' }
}
提前谢谢大家。
答案 0 :(得分:1)
当有人指出其他地方(可能是Stackoverflow或类似的东西)时,使用passport-google获取更多信息是不可能的。您和我将不得不使用官方Google API方法来获取更多信息。遗憾的是,没有选择将profileFields添加到策略中以在响应中请求更多信息(可以使用passport-facebook)。