我目前正在尝试使用Koa-Passport和Koajs 2实现Facebooks
一切正常,我可以登录,但无论我在作用域中发送什么,我都只能得到:
{ passport:
{ user:
{ id: '1015401',
username: undefined,
displayName: 'John Doe',
name: [Object],
gender: undefined,
profileUrl: undefined,
provider: 'facebook',
_raw: '{"name":"John Doe","id":"1015401"}',
_json: [Object] } } }我试着添加了
scope: ['email', 'public_profile']似乎可以在Facebook上工作,因为我可以看到我的应用程序请求的信息,所有的东西都在那里。
但是当我点击ok并被重定向回我的应用程序时,我又一次错过了像profile_pic字段和email字段这样的东西。任何关于如何找回这些字段的信息都将非常感谢。我会在github页面上打开一个问题,但有些问题可以追溯到2013年,它似乎没有得到太多维护。
发布于 2016-05-12 17:39:29
我也遇到了同样的问题,通过执行以下操作解决了这个问题:
在passport.js中,使用profileFields添加行
passport.use(new FacebookStrategy({
clientID: clientID,
clientSecret: clientSecret,
callbackURL: callbackURL,
profileFields: ['id', 'name', 'emails']
},'emails'将返回一个电子邮件数组,因此获取第一个值:
newUser.facebook.email = profile.emails[0].value;让我们知道这是否对你有效,也许对其他人也会有帮助。
https://stackoverflow.com/questions/37066678
复制相似问题