如何在Express中将静态文件与用户相关联?

时间:2020-05-28 05:52:41

标签: file express authentication multer

我想将静态文件与特定用户相关联,并进行某种形式的身份验证,以便特定文件集只能由与它们相关联的用户看到。

我正在使用multer上传文件。 我的中间件提供了所有请求的文件。

app.use(express.static(path.join(__dirname, "public")));

在我的SQL数据库中,我将图像的路径与user_id一起存储。现在,当请求资源时,我想确定请求用户是否拥有它,否则拒绝该请求。

1 个答案:

答案 0 :(得分:1)

您可以在它之前添加一个中间件功能,并使该中间件检查是否允许该请求-诸如此类。

app.use(checkUser, express.static(path.join(__dirname, "public")));

checkUser将需要成为一个中间件功能,以检查是否允许用户请求该特定URL。如果不是,那么它将返回错误并且不调用next(),因此express.static()永远不会看到请求。如果允许用户,则中间件调用next()express.static()将查看它是否可以提供该URL。