在mongodb中编辑用户文档

时间:2016-02-25 14:47:21

标签: mongodb firebase angular-fullstack yo

除了更改密码之外,允许编辑用户文档是不好的做法。我注意到在yo的angular-fullstack上没有更新用户的功能。同样在firebase上,用户注册了身份验证内容,但用户信息(姓名,电话,地址......)需要存储在其他地方。

换句话说,是否有理由让用户文档仅负责身份验证,然后为非身份验证字段提供另一个文档?

我不是在征求意见。只有在同一文档中存储验证字段和非验证字段的事实问题。

1 个答案:

答案 0 :(得分:5)

在对应用程序进行原型设计时,我不会说您在开始时将这些数据分开会有任何好处。但是,随着应用程序的增长,可能有一些原因可以分离出身份信息。

分离关注

身份验证是一个特定的用例,单独存储它是有意义的,这可以在需要将身份验证逻辑委托给外部身份提供者的情况下促进对身份验证机制的更改。

对于任何严苛的域名都是如此,不同的服务可能会处理不同的用户相关信息。这些服务可能/可能希望负责存储和创作该数据。并非所有服务都需要知道用户的所有属性,因此每个服务都存储它负责的数据。

安全&政策

将敏感用户信息放入单独的集合中将为数据库管理员提供关于谁可以访问该特定集合的更细粒度的控制。或者,如果安全策略需要,它可以用作将身份验证一起移动到单独服务器的基础工作。

您要求提供一个不存在意见的答案,但您提到的主题与关注点分离和微服务架构有关。这些领域可以非常自以为是,所以不要把我的答案视为一个完整的答案。

在此阅读微服务架构:
http://martinfowler.com/articles/microservices.html