如何配置我的 Google API 访问权限以在身份验证时请求用户的图像?目前,用户成功通过身份验证后,“个人资料”仅包含以下属性:
profile.identifier:(字符串)
profile.displayName:(字符串)
个人资料.电子邮件:(对象)
名称:(对象)
不是可以索取用户的账户图片吗?这是我当前的 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 功能吗?
passport返回的profile对象,只映射了几个字段:
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'];
现在,以下两个字段返回用户的图像:
var picture = '';
picture = profile._json.image.url;
picture = profile.photos[0].value;
这对我有用。
profile.photos[0].value
这就是它返回的内容
https://lh3.googleusercontent.com/a-/AOh14GgxnR-ia_f8_hJpUNdD4CoL9IM
我们如何从个人资料图片中获得的链接中获取该图片,例如,我有图像标签,我正在做的是手动尝试将该链接放置在 src 中,但它对我不起作用