express-jwt通过路由处理特定的秘密密码

时间:2015-03-11 21:16:53

标签: node.js express token jwt express-jwt

这是我的用例。

在使用express-jwt模块的Express应用程序中,我有2条主电源路由。我想用2个密码来保护我的路线。

app.use('/api/v1/admin', jwt({secret: "blabla1"}).unless({path:['/api/v1/admin/login']}));
app.use('/api/v1', jwt({secret: "blabla2"}).unless({path: ['/api/v1/login']}));

在这种情况下,它没有像我期望的那样工作...... 有没有办法在一个快递应用程序中实现这一目标?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你的语法有点偏,上面你要做的就是设置整个应用的秘密。如果您想保护某条路线,可以执行以下操作。

app.all('/api/v1', jwt({secret: "blabla2"}).unless({path: ['/api/v1/login']}));
app.all('/api/v1/admin', jwt({secret: "blabla1"}).unless({path:['/api/v1/admin/login']}));

上面的代码允许您为特定路线定义不同的秘密。对app.all的调用会捕获每种类型的HTTP调用。