簡體   English   中英

swagger節點具有邏輯AND的多個安全處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM