PassportJS 配置文件未定义名称

JR *_*lia 0 oauth-2.0 express passport.js

我在 ExpressJS Web 应用程序中使用PassportJSPassport-google-oauth 。

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);
  ...
}));
Run Code Online (Sandbox Code Playgroud)

问题是profile.displayNameprofile.name.familyNameprofile.name.givenName未定义。当我使用Passport Facebook 的回调时,完全没有问题。

使用Google账号登录时如何获取用户名?

Ado*_*mor 6

当我检查时,它似乎比官方示例中的参数更多,导致人们感到困惑,包括我。

而不是

function(accessToken, refreshToken, profile, done)
Run Code Online (Sandbox Code Playgroud)

使用

function(req, accessToken, refreshToken, profile, done)
Run Code Online (Sandbox Code Playgroud)

  • 配置文件未定义和 profile.emails[0].value = 未定义问题的类似帖子,请标记为解决方案或点赞。之后,console.log(profile) 就可以工作了。我正在开发 Facebook 流程。 (2认同)