gpt4 book ai didi

node.js - 由于 "AuthorizationError",未捕获来自 Passport-facebook 的服务器错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:53 27 4
gpt4 key购买 nike

我在使用 Passport-facebook 和 Nodejs/express 时遇到一些问题。

成功的登录处理得很好。然而,由于某种原因,当 FB 连接登录失败时,我的应用程序会抛出一个服务器错误,该错误未被捕获并返回状态 500。我相信我正在使用相当标准的 Passport 配置,所以我有点不知道可以做什么是问题所在。

在本例中,为了创建错误,我使用另一个应用程序的测试用户登录我的沙盒应用程序。

错误/堆栈跟踪表明错误出现在我没有触及的模块代码中:

AuthorizationError at Strategy.OAuth2Strategy.authenticate (/Users/username/Sites/node_projects/applicationname/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:126:25) at Strategy.authenticate (/Users/username/Sites/node_projects/applicationname/node_modules/passport-facebook/lib/strategy.js:84:41) at attempt (/Users/username/Sites/node_projects/applicationname/node_modules/passport/lib/passport/middleware/authenticate.js:243:16) at Passport.authenticate (/Users/username/Sites/node_projects/applicationname/node_modules/passport/lib/passport/middleware/authenticate.js:244:7) at callbacks (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:164:37) at param (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:138:11) at pass (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:145:5) at Router._dispatch (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:173:5) at Object.router (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:33:10) at next (/Users/username/Sites/node_projects/applicationname/node_modules/express/node_modules/connect/lib/proto.js:193:15)

这是非常标准的路线:

app.get('/auth/facebook/callback', 
passport.authenticate('facebook', { successRedirect: '/#',
failureRedirect: '/#login' }));

req.query 是

{"error_code":"2102","error_message":"User is not a test user owned by the application"}

在阅读了这个已解决的问题( https://github.com/jaredhanson/passport-oauth/issues/16 )后,我添加了中间件,以便 req.query 是:

{"error_code":"2102","error_message":"User is not a test user owned by the application","error":true}

这是我添加的中间件(我将其删除,因为它不起作用):

app.use(function(req, res, next){
if (req.query && !req.query.error && req.query.error_code) {
req.query.error = true;
}
next();
});

我应该更新我的软件包并尝试卸载/重新安装所有内容:

"dependencies": {
"express": "3.x",
"mongodb": "1.3.x",
"socket.io": "0.9.x",
"mongoose": "3.6.x",
"passport": "0.1.x",
"passport-facebook": "1.0.x",
"passport-local": "0.1.x",
"bcrypt": "0.7.x",
"handlebars": "1.0.x",
"consolidate": "0.9.x",
"imagemagick": "0.1.x",
"aws-sdk": "1.12.x"
},

到目前为止还没有运气,没有想法,没有直接破解模块,这似乎没有必要。

有什么想法吗?

提前非常感谢。

最佳答案

尝试将您的应用程序从沙盒更改为非沙盒,并尝试重新创建错误。

关于node.js - 由于 "AuthorizationError",未捕获来自 Passport-facebook 的服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005865/

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