使用除非处理 express-jwt 中的参数化路由
Handling parameterised routes in express-jwt using unless
给定以下路线:
router.get('/api/members/confirm/:id, function (req, res, next)
如何指定要排除的路由?我试过:
app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm']}));
和
app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm/:id']}));
但是 unless 数组中的路径似乎都不起作用?
express-jwt
模块使用 express-unless 给你这个 unless
方法,它不接受 express' :param
路径参数语法。
但它确实接受正则表达式,因此您可以这样做:
app.use('/api', expressJwt({ secret: config.secret}).unless({path: [/^\/api\/members\/confirm\/.*/]}));
如果你不喜欢,你也可以给 unless 函数:
var myFilter = function(req) {return true;}
app.use('/api', expressJwt({ secret: config.secret}).unless(myFilter));
您必须使用正则表达式来实现您正在寻找的内容,您还可以添加另一个字段来指定允许的方法,如下所示:
expressJwt({ secret, isRevoked }).unless({
path: [
{ url: /^\/api\/members\/confirm\/.*/, methods: ['GET', 'PUT'] }
]
})
给定以下路线:
router.get('/api/members/confirm/:id, function (req, res, next)
如何指定要排除的路由?我试过:
app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm']}));
和
app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm/:id']}));
但是 unless 数组中的路径似乎都不起作用?
express-jwt
模块使用 express-unless 给你这个 unless
方法,它不接受 express' :param
路径参数语法。
但它确实接受正则表达式,因此您可以这样做:
app.use('/api', expressJwt({ secret: config.secret}).unless({path: [/^\/api\/members\/confirm\/.*/]}));
如果你不喜欢,你也可以给 unless 函数:
var myFilter = function(req) {return true;}
app.use('/api', expressJwt({ secret: config.secret}).unless(myFilter));
您必须使用正则表达式来实现您正在寻找的内容,您还可以添加另一个字段来指定允许的方法,如下所示:
expressJwt({ secret, isRevoked }).unless({
path: [
{ url: /^\/api\/members\/confirm\/.*/, methods: ['GET', 'PUT'] }
]
})