Неперехваченная ошибка сервера из паспорта-facebook из-за AuthorizationError

У меня проблемы с паспортом-facebook и nodejs / express.

Успешные входы обрабатываются хорошо. Однако по какой-то причине, когда подключение к FB не удается, мое приложение выдает ошибку сервера, которая не обнаруживается и возвращается со статусом 500. Я считаю, что использую довольно стандартную конфигурацию паспорта, поэтому я немного застрял в том, что может быть проблемой.

В этом случае, чтобы создать ошибку, я вхожу в свое изолированное приложение с тестовым пользователем из другого приложения.

Ошибка / stacktrace указывает, что ошибка находится в коде модуля, которого я не касаюсь:

AuthorizationError в Strategy.OAuth2Strategy.authenticate (/Users/username/Sites/node_projects/applicationname/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:126:25) в Strategy.authenticate (/ Users / username /Sites/node_projects/applicationname/node_modules/passport-facebook/lib/strategy.js:84:41) при попытке (/Users/username/Sites/node_projects/applicationname/node_modules/passport/lib/passport/middleware/authenticate.js : 243: 16) в Passport.authenticate (/Users/username/Sites/node_projects/applicationname/node_modules/passport/lib/passport/middleware/authenticate.js:244:7) в обратных вызовах (/ Users / username / Sites / node_projects /applicationname/node_modules/express/lib/router/index.js:164:37) в param (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:138:11) в пройти (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:145:5) в Route r._dispatch (/Users/username/Sites/node_projects/applicationname/node_modules/express/lib/router/index.js:173:5) в Object.router (/ Users / username / Sites / node_projects / applicationname / node_modules / express /lib/router/index.js:33:10) в следующий (/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"
},

Пока не повезло, и идеи заканчиваются, если не считать взлома модуля напрямую, что кажется ненужным.

Есть предположения?

Большое спасибо заранее.


person silvermanip    schedule 15.11.2013    source источник


Ответы (1)


Попробуйте изменить свое приложение с изолированной программной среды на не изолированную и попытайтесь воссоздать ошибку.

person zdwolfe    schedule 18.11.2013