用Nest.js做BFF层做请求转发,如何在所有请求之前加一个验证的请求,验证通过再转发,不通过返回403?

新手上路,请多包涵

我用Nest.js做BFF层,主要做请求转发,在里面没有自己的路由

app.register(require('fastify-reply-from'), {
  base:http://backend:8000,
})

现在我想在所有请求之前加一个验证,这个验证数据需要请求一个后端服务返回,如果我使用中间件做,请求数量多的时候会导致请求变得很慢,后续的请求会挂起

app.use(verifySign(app))

async verifySign(req, res, next) {
 const key = await request()
 if (key !== 'something') {
    res.statusCode = 403
 }
 next()
}

如何能解决这个问题或者使用更好的方式?

我尝试使用拦截器去拦截每个请求,发现转发的请求无法被拦截,使用fastify-reply-from转发的时候是否有拦截器可以拦截转发的请求?

阅读 893
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题