web-dev-qa-db-fra.com

Authentification de l'en-tête de demande avec Express

Je veux vérifier que toutes nos demandes d'obtention ont un jeton spécifique dans leur en-tête d'authentification.

Je peux ajouter ceci à nos points d'extrémité get:

app.get('/events/country', function(req, res) {
    if (!req.headers.authorization) {
    return res.json({ error: 'No credentials sent!' });
    }

Existe-t-il un meilleur moyen de gérer cela dans NodeJS/Express sans changer chaque point de terminaison? quelque chose comme une approche avant filtre/AOP?

12
kambi

Voilà à quoi sert middleware :

app.use(function(req, res, next) {
  if (!req.headers.authorization) {
    return res.status(403).json({ error: 'No credentials sent!' });
  }
  next();
});

...all your protected routes...

Assurez-vous que le middleware est déclaré avant les routes auxquelles le middleware doit s'appliquer.

35
robertklep