所以,我使用的是 Node.js + Swagger + MongoDB。
我正在尝试验证所有请求是否都带有有效的 auth_token,这是存储在 mongo 上的用户的值。我的问题是 Swagger 支持的验证器需要返回 true 或 false,但由于我必须检查 Mongo 以验证身份验证令牌,因此整个验证变得异步。
以下是您需要的代码:
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
});
我该如何解决这个问题?