我目前正尝试使用Koa-Passport
和Koajs 2
来实施Facebook OAUTH
Everythings工作正常,我可以登录,但不管怎样,但无论我在范围内发送的是什么,我都会得到:
{ 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] } } }
我已尝试添加
似乎在Facebook上工作的 scope: ['email', 'public_profile']
因为我可以看到我的应用所要求的信息,所有的东西都在那里。
但是当我点击确定然后我被重定向回我的应用时,我又错过了profile_pic
字段和email
字段等内容。有关如何获得这些领域的任何信息都将非常感谢。我会在github页面上打开一个问题,但是有一些问题可以追溯到2013年它似乎没有得到很好的维护。
答案 0 :(得分:0)
我遇到了同样的问题,解决了:执行以下操作:
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;
如果这对您有用,请告诉我们,也许这对其他人也有帮助。