Express PassportJS配置文件未定义名称
我正在ExpressJS web应用程序中使用和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
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流量上工作。