3

如何配置我的 Google API 访问权限以在身份验证时请求用户的图像?当前,“个人资料”仅在用户成功通过身份验证后包含以下属性:

profile.identifier :(字符串)

profile.displayName :(字符串)

profile.emails : (对象)

名称:(对象)

不可以请求用户的账号图片吗?这是我当前的 Passport/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 控制台中以某种方式进行配置。这是 Google+ api 功能吗?

4

3 回答 3

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包含更多信息的属性:

尝试:

var picture = profile._json['picture'];
于 2013-09-29T19:39:29.827 回答
2

这些天来,以下两个字段返回用户的图像:

var picture = '';

picture = profile._json.image.url;
picture = profile.photos[0].value;
于 2018-04-13T20:13:17.337 回答
0

这对我有用。

profile.photos[0].value

这是它返回的

https://lh3.googleusercontent.com/a-/AOh14GgxnR-ia_f8_hJpUNdD4CoL9IM
于 2020-07-02T20:43:40.820 回答