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

最近では、次の 2 つのフィールドがユーザーの画像を返します。

var picture = '';

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