【发布时间】:2020-01-03 06:28:50
【问题描述】:
我有一个关于私有资源访问的问题。
我正在设计一个应用程序,每个用户都可以在其个人空间中上传文件(例如图像、视频、pdf 等)。因此,当我收到对某个资源的请求时,我需要检查发送该请求的用户是否应该可以访问某个文件。
我打算允许访问的方式如下:-
- 浏览器发送请求,例如,用户的私有图像以及用户的 jwt(用户登录时创建的访问令牌)。
- 如果请求未附带 jwt,则服务器发送 401 响应。
- 但是,如果请求附带 jwt,则从 jwt 中检索用户名。
- 此外,请求的 url 包含文件 id,此 id 用于检索与资源(在本例中为图像)对应的 mongo doc。
- Mongo 文档包含一个字段 -accessibleTo: ["user_name1", "user_name2", ...]。
- 在 mongodb 中针对此数组 (accessibleTo) 检查尝试访问文件的用户的用户名。
- 如果数组中存在用户名,则将资源(在本例中为图像)发送到浏览器,如果不存在,则服务器发送 401 响应。
我的问题是,我已经阅读了必须通过令牌允许授权的地方,但是,一个简单的数据库检查似乎对我的应用程序很好。我错过了什么吗?你能解释一下这个实现的缺点吗?
谢谢!
【问题讨论】:
标签: mongodb security oauth authorization