【问题标题】:NodeJS - Protect image url to only authorized userNodeJS - 仅将图像 url 保护给授权用户
【发布时间】:2019-08-15 19:51:54
【问题描述】:

所以我目前正在构建一个应用程序。用户可以上传图片。他们上传的图片应该只对他们可见。所以我想知道考虑到图像可以通过 URL 获得,我该如何实现这一点。

其实我的想法是,为了得到图片,用户应该做一个REST API请求,如果用户有正确的权限,api会返回图像数据。

我的应用程序的前端在 React 中,后端(Rest api)在 nodeJS 中。

编辑:实际上图像存储在 AWS S3 上(如果需要,可以更改)

谢谢!

【问题讨论】:

  • 由于您还在数据库中的某处保存了图像的 url,您可以使用用户 ID 向该文档添加一个字段,以便您可以根据用户查询要显示的 url .id only 或者也可以使用其图像 url 数组向用户模型添加一个字段,即 images:[url],而不仅仅是查询 user.images。
  • @vitomadio 是的,每个人都可以猜到网址并找到图片:/我只是希望用户可以访问他的图片
  • 视情况而定,因为你可以用一些加密来重写图像名称,这样就很难猜到 url :)
  • @vitomadio 当然是的;)

标签: node.js reactjs mongodb image


【解决方案1】:

只允许授权用户获取图像的最佳选择是 S3 Presigned URL 你可以参考the article,它详细描述了如何实现 S3 Presigned URL。 Another code example with Node JS。如果您使用其他语言编写代码,只需 google 一下“AWS S3 Presigned URL”,您就会找到它。

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2015-06-14
    相关资源
    最近更新 更多