我已经熟悉MongoDB基于JSON格式的文档。我正在使用MEAN堆栈创建我的第一个Web应用程序,用户可以在其中注册然后能够登录到后端仪表板,在那里他们可以实现产品/配置文件信息等。我如何设置它存储在MongoDB上?将每个用户存储为文档吗?并且就安全性原因而言,我如何才能不允许GET请求获取不同的用户信息?
目前,我只拥有一组用户,以及一系列产品(每个用户都有唯一的ID号码)等等,这似乎不是存储数据的正确方法。
如果有人可以帮助我如何为Mongo设置数据库那将是非常棒的!提前谢谢!
答案 0 :(得分:1)
将每个用户存储为文档吗?
是的,每个用户都是对象,因此它存储为单独的文档。
我怎样才能不允许GET请求获取不同的用户信息?
这与Mongo或任何其他数据存储机制无关。您需要处理Web服务层,该层公开您的数据过滤请求,以根据您在场景中可能发现的用户角色,声明或任何授权方法对其进行授权。
也许您应该考虑实施OAuth2。有一个与Express集成的软件包可以实现您自己的OAuth2授权服务器:node-oauth2-server。
答案 1 :(得分:0)
目前,我只有一个用户集合和一个集合 产品(每位用户的唯一身份证号码)等对我而言 似乎不是存储数据的正确方法。
你实际上是正确的。现在,当您为用户显示产品页面时,您只需要检索属于当前经过身份验证的单个用户的文档,这意味着您已设置了身份验证,并且产品具有userId
字段。
这是大多数应用程序的工作方式。如果您想了解其他解决方法,请阅读multi-tenancy。