我有一个swagger node express app,我不知道如何拥有两个安全处理程序?
我的swagger.yaml
中有两个SecurityDefinitions/foo
security:
- appKeyA: []
appKeyB: []
在我的路线
app.use(
middleware.swaggerSecurity({
//manage token function in the 'auth' module
appKeyA: auth.verifyToken
})
);
如此逻辑AND
在我的app.js
中exports.verifyToken = function(req, authOrSecDef, token, callback) {
...
}
它成功运行了我的verifyToken函数
中的代码{{1}}
现在我在哪里放第二个功能来阻止获取 错误:未知安全处理程序:appKeyB
由于
答案 0 :(得分:0)
当我试图弄清楚如何简单地使安全中间件工作时,我偶然发现了这一点。
首先,必须将安全中间件必须添加到swaggerRouter之前的中间件链中。
第二,对于您的问题,您只需将其添加到安全定义中,如下所示:
app.use(middleware.swaggerMetadata());
app.use(middleware.swaggerValidator());
// This must be placed before the swaggerRouter
app.use(
middleware.swaggerSecurity({
//manage token function in the 'auth' module
appKeyA: auth.verifyToken,
appKeyB: auth.verifyToken2 //Add the second token to verify appKeyB
})
);
app.use(middleware.swaggerRouter(options));
app.use(middleware.swaggerUi());
此外,我在这里介绍了一种新的验证方法,称为verifyToken2,将此函数添加到您的auth文件中,以便它导出两个函数:)
exports.verifyToken2 = function(req, authOrSecDef, token, callback) {
...
}