Я создаю приложение, используя узел, экспресс и промежуточное ПО для авторизации паспортов, реализованное для всех маршрутов. Я использую модульный подход к созданию своего приложения. Я пытаюсь исключить определенные API из аутентификации, когда я включаю их выше промежуточного программного обеспечения авторизации. Но когда я включаю app.use('/', require('./api/search/index'));
над промежуточным ПО авторизации, API-интерфейсы под ним перестают работать.
Критика и предложения приветствуются для этого подхода и что я могу сделать, чтобы решить эту проблему.
Я не хочу включать промежуточное программное обеспечение маршрута в каждый маршрут, подобный этому
route.get('/example', auth.middleware(), function (req, res) {
})
Ниже представлен подход к моему приложению с промежуточным ПО с единой авторизацией для всех маршрутов
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var auth = require("./auth.js")();
app.use(auth.initialize());
//Excluding the search API from Authentication,
app.use('/', require('./api/search/index'));
//Middleware for all APIs and require Auth headers for authrization access
app.use(auth.authenticate(), function (req, res, next) {
if (req.headers.authorization && req.user) {
var parted = req.headers.authorization.split(' ');
if (parted.length === 2) {
console.log(req.user);
next();
} else {
return res.status(403).send({
success: false,
msg: 'Unauthorized.'
});
}
} else {
return res.status(503).send({
success: false,
msg: 'Bad Request'
});
}
});
//Join routers
app.use('/', require('./api/users/index'));
app.use('/', require('./api/product/index'))
app.use('/', require('./api/company/index'))