Używam paszportu, aby zabezpieczyć mój interfejs API. Staram się zrozumieć, w jaki sposób mam wysłać niestandardową wiadomość w przypadku błędu i mam nadzieję, że znajdę tutaj odpowiedź.Niestandardowy komunikat o błędzie z użyciem paszportowego nosiciela
Oto co zrobiłem:
Trasa (server.js):
router.route('/Applications').get(authController.BearerAuthenticated, applicationController.getApplications);
My Passport Rzeczy (authController.js):
Passport.use(new BearerStrategy(function(token, cb) {
Token.findOne({token: token}, function(err, token){
if (err){return cb(null, false);}
if (!token) { return cb(null, false); }
return cb(null, token);
});
}));
exports.BearerAuthenticated = Passport.authenticate('bearer', {session: false});
Moja metoda aplikacji (Application .js)
exports.getApplications = function(req, res) {
Application.find({userId:req.user._id}, function(err, apps) {
if (err)
res.send(err);
res.json(apps);
});
};
Jeśli mój Token jest ważny i metoda okaziciela powrócić
return cb(null, token);
wtedy mogę wejść na moją metodę getApplications. To ma sens.
Chodzi o to, że token nie jest prawidłowy, nie wprowadzam metody (ma sens), ale nie mogę wymyślić sposobu na zwrócenie niestandardowej wiadomości do klienta zamiast następującego komunikatu. domyślnie.
Unauthorized
Jaki byłby sposób, aby powrócić do JSON z kodem błędu właściwie poinformować użytkownika, że jego żeton jest martwe lub po prostu nie istnieje?
Dzięki za poświęcony czas. :)