使用除非处理express-jwt中的参数化路由

时间:2015-05-31 15:29:00

标签: 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']}));

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

但是除非数组中的路径似乎都没有用?

2 个答案:

答案 0 :(得分:14)

.row { display: flex; display: -webkit-flex; -webkit-align-items: center; align-items: center; padding : 10px; border-top-color: #eeeeee; border-top-width: 1px; border-top-style: solid; } .text { flex: 0 0 150px; display: inline-block; } 模块正在使用express-unless为您提供此express-jwt方法,该方法不接受明确的'unless路径参数语法。

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

:param

如果您不喜欢,除非有函数,否则您也可以提供:

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

答案 1 :(得分:5)

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

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