Sto utilizzando il passaporto per proteggere la mia API. Mi sforzo di capire come dovrei inviare un messaggio personalizzato in caso di errore e spero di trovare una risposta qui.Messaggio di errore personalizzato utilizzando il portatore del passaporto
Ecco quello che ho fatto:
Un percorso (server.js):
router.route('/Applications').get(authController.BearerAuthenticated, applicationController.getApplications);
My Passport Stuff (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});
Il mio metodo di applicazione (Application .js)
exports.getApplications = function(req, res) {
Application.find({userId:req.user._id}, function(err, apps) {
if (err)
res.send(err);
res.json(apps);
});
};
Se il mio token è valido e il metodo portatore tornare
return cb(null, token);
allora posso entrare nel mio metodo getApplications. Ha senso.
La cosa è quando il token non è valido, non inserisco il metodo (ha senso anche) ma non riesco a capire un modo per restituire un messaggio personalizzato al client invece del seguente messaggio che ottengo per impostazione predefinita.
Unauthorized
Quale potrebbe essere un modo per restituire un JSON con un codice di errore di lasciare che correttamente all'utente di sapere che il suo token è morto o semplicemente non esiste?
Grazie per il tuo tempo. :)