Сделать промежуточное ПО:
function requiresAuth (req, res, next) {
// LOGGED IN CONTROL
if (!req.session.loggedIn) {
console.log(" FORBIDDEN ");
res.status(403).send({ errorCode: "403" });
return;
}
else {
next(); // continue the process
}
}
Теперь вы можете использовать его следующим образом:
app.post("/createEvent", requiresAuth, function(req, res) {});
app.post("/readEvent", requiresAuth, function(req, res) {});
app.post("/updateEvent", requiresAuth, function(req, res) {});
app.post("/deleteEvent", requiresAuth, function(req, res) {});
Реализуйте его в своем собственном файле, и теперь у вас есть модуль, который можно использовать в любом месте вашего кода.
Промежуточное программное обеспечение является гибким. Помните, Express позволяет вам применять промежуточное ПО для целых маршрутов:
app.use('/protected/path', requiresAuth, protectedRouter);
Дополнительная подсказка: вы можете использовать это для реализации ролей:
function requiresAuth (role) {
return function (req, res, next) {
// LOGGED IN CONTROL
if (!req.session.loggedIn || req.session.role !== role) {
console.log(" FORBIDDEN ");
res.status(403).send({ errorCode: "403" });
return;
}
else {
next(); // continue the process
}
}
}
app.post("/createEvent", requiresAuth('USER'), function(req, res) {});
app.post("/readEvent", requiresAuth('USER'), function(req, res) {});
app.post("/updateEvent", requiresAuth('USER'), function(req, res) {});
app.post("/deleteEvent", requiresAuth('ADMIN'), function(req, res) {});
Вы можете реализовать более сложные ролевые логи c при необходимости.