保护上传的文件并仅提供授权用户的访问权限
Protect uploaded files and provide access only authorized users
我正在使用Multer上传一些文件,我想知道上传后保护对这些文件的访问的推荐方法是什么。
我有2种类型的用户; 管理员和普通用户。用户只能上传照片,只有管理员才能访问照片的网址。
上传文件的文件夹结构:./public/uploads/teacher/
这是我的代码:
服务器.js
// This is auth middleware which checks if access token is valid to access API
app.all('/api/*', [require('./validateReq')]);
app.use('/', require('./routes'));
app.use(express.static('public'));
路由/索引.js
var teacher = require('./teachers.js');
router.post('/upload', teacher.uploadAvatar);
路线/教师.js
var multer = require('multer');
var upload = multer({ dest: 'uploads/teacher/' }).single('avatar');
uploadAvatar: function(req, res) {
upload(req, res, function(err) {
console.log(req.body);
console.log(req.file);
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
}
如果用户上传文件john_doe.png
,我如何将对以下 URL 的访问限制为仅教师/管理员,使其不公开:localhost:8000/uploads/teacher/john_doe.png
.在这种情况下,最佳做法是什么?
这与在返回资源之前添加身份验证过程没有什么不同。有多种方法可以做到这一点。例如,在最基本的级别中,您可以使用基本身份验证标头。您还可以使用 Cookie(特别是 httpOnly Cookie)来传递授权 Cookie 等。
看到您已经有类似内容的中间件,您可以使用它来检查用户是否具有管理员权限,然后再授权他们查看资源。
相关文章:
- 如何在网络应用程序中使用Firebase进行用户授权
- 检查用户是否在Orchard CMS中获得授权
- Node.js和angular用户授权
- Angular JS授权-在加载页面之前检查用户角色
- 谷歌'的用户令牌和授权代码
- 如何调用索引/索引路由'用户后的s模型挂钩's的授权
- 如何在我的chrome扩展中授权用户
- 如果用户授权声明
- 防止Angular网站上未经授权的用户在重定向到登录之前看到网站的最佳方式
- 用户登录后如何调用 socket.io 授权
- 授权用户上传
- 从我的应用中打开/关闭或取消授权用户,并列出应用中用户的操作
- 使用 Javascript SDK,当用户尚未授权我的应用程序时,如何获取 Facebook 用户 ID
- 保护上传的文件并仅提供授权用户的访问权限
- 用PHP和Javascript实现用户授权
- 使用MEAN.JS用户授权
- 如何在未经用户授权的情况下使用Trello API
- 用户授权不适用于Mean.JS
- 我如何显示/隐藏按钮在角根据用户授权
- 保存facebook网页后,用户授权使用PHP或Javascript