2017-09-07 5 views
1

Je souhaite vérifier que toutes nos demandes get ont un jeton spécifique dans leur en-tête d'authentification.Authentification de l'en-tête de demande avec Express

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!' }); 
    } 

Y at-il une meilleure façon de gérer cela dans NodeJS/Express sans changer chaque point final? quelque chose comme une approche avant-filtre/AOP?

Merci

+0

Vous pouvez écrire un middleware express simple qui vérifie l'en-tête d'autorisation pour chaque requête HTTP reçue. Assurez-vous d'app.use() le middleware avant de gérer les routes – amoghesturi

Répondre

3

C'est ce que middleware est pour:

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 appliquer.