2015-10-15 80 views
2

在我的REST API調用的一個我需要添加標題「授權:PARTNER_ID:時間戳簽名」如何在swagger UI中添加自定義授權?

,其中公司名稱是靜態的字符串,它可以被硬編碼在那裏爲 PARTNER_ID是查詢參數的用戶輸入,並 部分簽名的計算方式爲:sha256(secret,password).digest.encode('base64')

如何以及在哪裏可以實現此授權,因爲我看到只有api_key,並且在swagger-ui中允許基本授權。

回答

1

是的,您可以輕鬆創建自己的簽名技巧。從swagger-js自述:

var CustomRequestSigner = function(name) { 
    this.name = name; 
}; 

CustomRequestSigner.prototype.apply = function(obj, authorizations) { 
    // do something real instead of this... 
    var hashFunction = this._btoa; 
    var hash = hashFunction(obj.url); 

    obj.headers["signature"] = hash; 
    return true; 
}; 

,並把它添加到招搖像這樣:

client.clientAuthorizations 
    .add("custom", new CustomRequestSigner("custom","special-key","query")); 

然後標註了安全要求custom任何操作都會有這樣的應用。

+0

如果client.clientAuthorizations未定義,你會怎麼做?我得到它作爲未定義 – PirateApp