![](/img/trans.png)
[英]swagger-node: using swagger “project edit with” $ref (multiple files)
[英]swagger node multiple security handlers with logic AND
我有一個swagger節點快遞應用程序,我不知道如何有兩個安全處理程序?
我的swagger.yaml中有兩個SecurityDefinitions
securityDefinitions:
appKeyA:
type: apiKey
name: Authorization
in: header
appKeyB:
type: apiKey
in: header
name: X-APP-ID
在我的路線
/foo
security:
- appKeyA: []
appKeyB: []
如此邏輯和
在我的app.js中
app.use(
middleware.swaggerSecurity({
//manage token function in the 'auth' module
appKeyA: auth.verifyToken
})
);
它成功運行了我的verifyToken函數中的代碼
exports.verifyToken = function(req, authOrSecDef, token, callback) {
...
}
現在我在哪里放第二個函數以防止獲取錯誤:未知安全處理程序:appKeyB
謝謝
當我試圖找出如何簡單地使安全中間件工作時,我偶然發現了這一點。
首先, 必須在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) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.