[英]restricting access to user uploaded files in nodejs?
我正在创建一个Node.js / Express应用程序,该应用程序允许用户上传文件(图片,声音...),但是我不希望用户仅输入文件URL并访问它,我想确认用户身份并用户是否是该文件的所有者,而我对此有一些想法
那么您认为什么是最好的选择,或者您有更好的主意?像Facebook这样的大人物怎么做到的?
使用UUID,但不仅要使文件可用作静态资源。 它们仍应位于身份验证功能之后。 将UUID保存在拥有该文件的用户的数据库中。 然后,身份验证功能将检查所请求的UUID是否属于登录用户。
像这样:
app.use('/uploads/:uuid', authImage, express.static('uploads'));
function authImage(req, res, next){
if(req.user.images.contains(req.params.uuid))
next();
else
res.status(403).send('Forbidden');
}
您没有提到您使用的是什么数据库。 如果您使用的是mongodb,则可以使用其GFS(网格文件系统)功能来存储文件。 当您存储文件时,您还可以添加元数据,在您的情况下,它将是用户ID或用户的db记录ID,以便您查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.