Как обрабатывать ошибки в модуле npm passport-facebook - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь реализовать вход в Facebook в node.js с помощью модуля passport-facebook.

Мой вопрос заключается в том, как правильно отлавливать ошибки, выдаваемые функцией проверки обратного вызова cb().И как затем передать эту ошибку на страницу / facbook / fail, чтобы показать дружеское сообщение об этом?

// passport init
passport.use(new FacebookStrategy({
        clientID: api.CONFIG.fbAuth.clientID,
        clientSecret: api.CONFIG.fbAuth.clientSecret,
        callbackURL: null,
        profileFields: ['id', 'emails', 'name', "birthday", "gender"]
    },
    function(accessToken, refreshToken, profile, cb) {
        return cb("Throw some error"); // throw some error here for testing porpuses
    }
));

// routes
router.get('/facebook', function(req, res, next) {
    passport.authenticate("facebook", {
        scope : ["email", "user_birthday", "user_gender"],
        callbackURL: "callbackUrl"
    })(req, res, next);
});

router.get('/facebook/callback', 
    function(req, res, next) {
        passport.authenticate("facebook", {
            callbackURL: "callbackUrl",
            failureRedirect: "failUrl"
        })(req, res, next);
    }, 
    function(req, res) {
        res.send("Facebook authentication successful.");
    }
);

router.all("/facebook/fail", failCallback(req, res) {
    // get info about the error thrown by cb() function
    let error = req.error;
    res.send("Facebook authentication failed.");
});
...