所以,我使用Node.js + Swagger + MongoDB。Swagger + Node.js的異步驗證功能
我試圖驗證所有的請求都帶有一個有效的auth_token,這是一個存儲在mongo用戶上的值。 我的問題是Swagger支持的驗證器需要返回true或false,但由於我必須檢查Mongo以驗證auth令牌,整個驗證將變爲異步。
下面是情況下,代碼,你需要它:
swagger.addValidator(
function validate(req, path, httpMethod) {
var apiKey = req.headers["auth_token"];
if (!apiKey) {
apiKey = url.parse(req.url,true).query["auth_token"];
}
models.user.validateAuthToken(apiKey, function(err, valid) {
//Here is where I know if the auth token is valid and it checks against Mongo, so it's async
});
return [something]; //this is what the validation sequence is expecting this function to do: return true or false
});
我怎樣才能解決這個問題呢?
哦,我做了,並提交了拉請求。讓我們希望他們接受它。如果有人需要它,我叉起大搖大擺,爲我的需求創建了一個單獨的模塊,並修復了它,它叫做:swagger-node-express-ext – Deleteman 2013-05-15 16:55:10
@Deleteman:這個問題有什麼更新嗎?我看到了您的存儲庫,但未找到請求並且您的回購已過期。另外,我在谷歌組上發現了這個討論,也談到了我找不到的一些拉取請求:https://groups.google.com/forum/#!topic/swagger-swaggersocket/UIgWkXYHBh0 – wegenerd 2014-05-09 23:53:20