Express 在快速jwt中使用除非处理参数化路线

Express 在快速jwt中使用除非处理参数化路线,express,express-jwt,Express,Express Jwt,考虑到以下路线: router.get('/api/members/confirm/:id, function (req, res, next) 如何指定要排除的路线?我试过: app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm']})); 及 但是除非数组中的两个路径似乎都不起作用?express jwt模块用于提供此除非方法,该方法不接受express':par

考虑到以下路线:

router.get('/api/members/confirm/:id, function (req, res, next)
如何指定要排除的路线?我试过:

app.use('/api', expressJwt({ secret: config.secret}).unless({path: ['/api/members/confirm']}));


但是除非数组中的两个路径似乎都不起作用?

express jwt模块用于提供此
除非
方法,该方法不接受express'
:param
路径参数语法

但它接受正则表达式,所以您可以这样做:

app.use('/api', expressJwt({ secret: config.secret}).unless({path: [/^\/api\/members\/confirm\/.*/]}));
如果您不喜欢,也可以给出一个函数:

var myFilter = function(req) {return true;}
app.use('/api', expressJwt({ secret: config.secret}).unless(myFilter));

您必须使用regex来实现所需的功能,还可以添加另一个字段来指定允许使用的方法,如下所示:

expressJwt({ secret, isRevoked }).unless({
    path: [
        { url: /^\/api\/members\/confirm\/.*/, methods: ['GET', 'PUT'] }
    ]
})
expressJwt({ secret, isRevoked }).unless({
    path: [
        { url: /^\/api\/members\/confirm\/.*/, methods: ['GET', 'PUT'] }
    ]
})