Ich habe eine Node.js Express-API, die keine Sicherheit hat und jetzt suche ich auf JWT-basierte Autorisierung zu patchen.Node.js API mit JWT-Authentifizierung
Ich habe es funktioniert (mit dem Code unten) für eine Methode. Gibt es eine einfache Möglichkeit, dies auf alle Methoden anzuwenden? z. B. vielleicht app.all? Oder muss ich den Code zu jeder Methode hinzufügen?
app.get('/people/:id', ensureToken, (req, res, next) => {
var id = req.params.id;
getPerson(id, (err, people) => {
if (err) {
next(err);
return;
}
jwt.verify(req.token, process.env.JWT_KEY, function(err, data) {
if (err) {
res.sendStatus(403);
} else {
res
.status(200)
.set('Content-Type', 'application/json')
.set("Connection", "close")
.send(person);
}
});
});
});
function ensureToken(req, res, next) {
const bearerHeader = req.headers["authorization"];
if (typeof bearerHeader !== 'undefined') {
const bearer = bearerHeader.split(" ");
const bearerToken = bearer[1];
req.token = bearerToken;
next();
} else {
res.sendStatus(403);
}
}
Ah, ich verstehe. Danke für die schnelle Antwort. Ich werde es heute Nacht versuchen – beachCode
Mit diesem werden Sie immer noch "jwt.verify" in Ihrer Route enthalten. – dzm