首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PassportJS配置文件未定义名称

PassportJS配置文件未定义名称
EN

Stack Overflow用户
提问于 2013-07-01 15:47:57
回答 2查看 996关注 0票数 0

我在一个ExpressJS web应用中使用PassportJSpassport-google-oauth

代码语言:javascript
复制
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.displayNameprofile.name.familyNameprofile.name.givenName都是未定义的。当我在Passport Facebook中使用回调时,完全没有问题。

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

EN

回答 2

Stack Overflow用户

发布于 2015-10-23 14:57:31

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

而不是

代码语言:javascript
复制
function(accessToken, refreshToken, profile, done)

使用

代码语言:javascript
复制
function(req, accessToken, refreshToken, profile, done)
票数 4
EN

Stack Overflow用户

发布于 2013-11-16 17:00:33

您需要请求它,将'https://www.googleapis.com/auth/userinfo.profile'包含在您的作用域中。

代码语言:javascript
复制
passport.use(new GoogleStrategy({
  clientID: GOOGLE_CLIENT_ID,
  clientSecret: GOOGLE_CLIENT_SECRET,
  callbackURL: CALLBACK,
  scope: ['https://www.googleapis.com/auth/userinfo.profile','email', ...]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17399635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档