Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express PassportJS配置文件未定义名称_Express_Oauth 2.0_Passport.js - Fatal编程技术网

Express PassportJS配置文件未定义名称

Express PassportJS配置文件未定义名称,express,oauth-2.0,passport.js,Express,Oauth 2.0,Passport.js,我正在ExpressJS web应用程序中使用和 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; passport.use(new GoogleStrategy({ clientID: GOOGLE_CLIENT_ID, clientSecret: GOOGLE_CLIENT_SECRET, callbackURL: CALLBACK }, function(accessToken, refr

我正在ExpressJS web应用程序中使用和

var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
passport.use(new GoogleStrategy({
  clientID: GOOGLE_CLIENT_ID,
  clientSecret: GOOGLE_CLIENT_SECRET,
  callbackURL: CALLBACK
},
function(accessToken, refreshToken, profile, done) {
  console.log(profile.displayName);
  console.log(profile.name.familyName);
  console.log(profile.name.givenName);
  ...
}));
问题是,
profile.displayName
profile.name.familyName
profile.name.givenName
未定义。当我使用回调时,没有任何问题


如何在使用Google帐户登录时获取用户的姓名?

您需要请求它,包括
'https://www.googleapis.com/auth/userinfo.profile“
在您的范围内

passport.use(new GoogleStrategy({
  clientID: GOOGLE_CLIENT_ID,
  clientSecret: GOOGLE_CLIENT_SECRET,
  callbackURL: CALLBACK,
  scope: ['https://www.googleapis.com/auth/userinfo.profile','email', ...]
}

您需要请求它,包括
'https://www.googleapis.com/auth/userinfo.profile“
在您的范围内

passport.use(new GoogleStrategy({
  clientID: GOOGLE_CLIENT_ID,
  clientSecret: GOOGLE_CLIENT_SECRET,
  callbackURL: CALLBACK,
  scope: ['https://www.googleapis.com/auth/userinfo.profile','email', ...]
}

当我检查时,它的参数似乎比官方样本中的参数要多,这导致了包括我在内的人们的困惑

而不是

function(accessToken, refreshToken, profile, done)
使用


当我检查时,它的参数似乎比官方样本中的参数要多,这导致了包括我在内的人们的困惑

而不是

function(accessToken, refreshToken, profile, done)
使用


只需打印配置文件,即可了解该对象的哪些成员可用。(例如,
console.log(profile);
)只需打印profile,即可了解该对象的哪些成员可用。(例如,
console.log(profile);
)针对未定义的profile和profile.emails[0]的类文章。值=未定义的问题,请标记为解决方案或向上投票。在此之后,console.log(profile)工作。我正在处理一篇facebook flow.godlike帖子,用于未定义个人资料和个人资料。电子邮件[0]。value=未定义的问题,请标记为解决方案或向上投票。在此之后,console.log(profile)工作。我正在facebook流量上工作。