gpt4 book ai didi

javascript - Node.js:Facebook 返回给我未定义而不是个人资料?

转载 作者:行者123 更新时间:2023-12-03 11:21:19 25 4
gpt4 key购买 nike

我想对我的应用程序进行 GoogleFacebook 身份验证。我在前端使用 AngularJS,在服务器上使用 node.js

这是我的 node.js 服务器上的 Facebook 身份验证函数:

var User = require('./user.js'),
request = require('request'),
env = process.env.NODE_ENV = process.env.NODE_ENV || 'development',
config = require('./config.js')[env],
createSendToken = require('./jwt.js'),
qs = require('querystring');

module.exports = function (req, res) {
var accessTokenUrl = 'https://graph.facebook.com/oauth/access_token';
var graphApiUrl = 'https://graph.facebook.com/me';

var params = {
client_id: req.body.clientId,
redirect_uri: req.body.redirectUri,
client_secret: config.facebookAuth.clientSecret,
code: req.body.code
};

console.log(req.body.code);

request.get({
url: accessTokenUrl,
qs: params
}, function (err, response, accessToken) {
accessToken = qs.parse(accessToken);

request.get({
url: graphApiUrl,
qs: accessToken,
json: true
}, function (err, response, profile) {
User.findOne({
facebookId: profile.id // <-- fails here
}, function (err, existingUser) {

if (existingUser)
return createSendToken(existingUser, res);

var newUser = new User();
newUser.facebookId = profile.id;
newUser.displayName = profile.name;
newUser.email = profile.email;
newUser.save(function (err) {
createSendToken(newUser, res);
})

})
});
});
}

然后分配给这个post:

app.post('/auth/facebook', facebookAuth);

前端工作正常(我正在使用satellizer)。

我对 Google+ 做了几乎同样的事情,效果很好,但对 Facebook 则不然。

我的 Facebook 应用程序配置正确(我已将 http://localhost:3030/ 添加到网站 URL 和移动网站 URL)。

现在,当我运行应用程序并按 Facebook 按钮时,我在服务器上收到以下错误:

                            facebookId: profile.id
^
TypeError: Cannot read property 'id' of undefined

这意味着profile未定义:

}, function (err, response, profile) {

为什么 Facebook 给我返回了未定义的个人资料?

我该如何解决这个问题?

最佳答案

检查

err的值
        json: true
}, function (err, response, profile) {
User.findOne({
facebookId: profile.id // <-- fails here

回答你的问题

关于javascript - Node.js:Facebook 返回给我未定义而不是个人资料?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27101326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com