Я пытаюсь реализовать вход в 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.");
});