0
在下面的代碼中,我想限制未經授權訪問'restrictedRoutes'路線。但是在這種情況下,「restrictedRoutes」會影響除「路由器」之外的任何路由。例如,如果我嘗試訪問'/ test',我想得到404錯誤,但是我卻得到了關於無效令牌的JWT錯誤,如果沒有提供。Express JS路由器中間件
我該如何創建中間件,這隻會影響某些'路由器'提供的路由?
/*
* API Routes file
*/
var jwt = require('jsonwebtoken');
var router = require('express').Router();
var restrictedRouter = require('express').Router();
module.exports = function (express, app) {
//Default routes
router.get('/login', app.controllers.HomeController.login);
restrictedRouter.use(function (req, res, next) {
try {
var tokenArray = req.headers.authorization.split(' ', 2);
if (jwt.verify(tokenArray[1], 'shh'))
next();
} catch (exception) {
res.status(401).json({error: exception.message});
}
});
//Restricted routes
restrictedRouter.get('/', function (req, res) {
res.send('Success');
});
express.use(router);
express.use(restrictedRouter);
};
應用 - 從與控制器和模型的應用程序「文件夾自動加載的文件。 app.use('/ restricted',routes.restrictedRouter); - 感謝這個解決方案) – user3169724