所以,我使用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