我想将静态文件与特定用户相关联,并进行某种形式的身份验证,以便特定文件集只能由与它们相关联的用户看到。
我正在使用multer上传文件。 我的中间件提供了所有请求的文件。
app.use(express.static(path.join(__dirname, "public")));
在我的SQL数据库中,我将图像的路径与user_id一起存储。现在,当请求资源时,我想确定请求用户是否拥有它,否则拒绝该请求。
答案 0 :(得分:1)
您可以在它之前添加一个中间件功能,并使该中间件检查是否允许该请求-诸如此类。
app.use(checkUser, express.static(path.join(__dirname, "public")));
checkUser
将需要成为一个中间件功能,以检查是否允许用户请求该特定URL。如果不是,那么它将返回错误并且不调用next()
,因此express.static()
永远不会看到请求。如果允许用户,则中间件调用next()
和express.static()
将查看它是否可以提供该URL。