在 mongodb 中编辑用户文档
Editing the user document in mongodb
允许在更改密码之外编辑用户文档是不好的做法。我注意到在 yo 的 angular-fullstack 上没有更新用户的功能。同样在 firebase 上,用户注册了身份验证内容,但用户信息(姓名、电话、地址......)需要存储在其他地方。
换句话说,是否有理由让用户文档只负责身份验证,然后让另一个文档负责非身份验证字段?
我不是征求意见。只有在同一文档中存储身份验证字段和非身份验证字段的事实问题。
在制作应用程序原型时,我不会说您会发现在开始时分离这些数据有任何好处。但是,随着应用程序的增长,可能有一些原因需要分离身份信息。
分离关注
身份验证是一个特定的用例,单独存储它可能很有意义,这可以促进身份验证机制的更改,以防身份验证逻辑需要委托给外部身份提供者。
这对于任何域都是如此,不同的服务可能会处理不同的用户相关信息。这些服务 can/may 希望负责存储和创作该数据。并非所有服务都需要知道用户的所有属性,因此每个服务都存储它负责的数据。
安全与政策
将敏感的用户信息放入单独的集合中将使数据库管理员能够更精细地控制谁可以访问该特定集合。或者,如果安全策略需要,它可以用作将身份验证一起移至单独服务器的基础工作。
你问的是一个非主观的答案,但是你提到的主题与关注点分离和微服务架构有关。这些域可能非常自以为是,所以无论如何不要将我的答案视为完整的答案。
在此处阅读微服务架构:
http://martinfowler.com/articles/microservices.html
允许在更改密码之外编辑用户文档是不好的做法。我注意到在 yo 的 angular-fullstack 上没有更新用户的功能。同样在 firebase 上,用户注册了身份验证内容,但用户信息(姓名、电话、地址......)需要存储在其他地方。
换句话说,是否有理由让用户文档只负责身份验证,然后让另一个文档负责非身份验证字段?
我不是征求意见。只有在同一文档中存储身份验证字段和非身份验证字段的事实问题。
在制作应用程序原型时,我不会说您会发现在开始时分离这些数据有任何好处。但是,随着应用程序的增长,可能有一些原因需要分离身份信息。
分离关注
身份验证是一个特定的用例,单独存储它可能很有意义,这可以促进身份验证机制的更改,以防身份验证逻辑需要委托给外部身份提供者。
这对于任何域都是如此,不同的服务可能会处理不同的用户相关信息。这些服务 can/may 希望负责存储和创作该数据。并非所有服务都需要知道用户的所有属性,因此每个服务都存储它负责的数据。
安全与政策
将敏感的用户信息放入单独的集合中将使数据库管理员能够更精细地控制谁可以访问该特定集合。或者,如果安全策略需要,它可以用作将身份验证一起移至单独服务器的基础工作。
你问的是一个非主观的答案,但是你提到的主题与关注点分离和微服务架构有关。这些域可能非常自以为是,所以无论如何不要将我的答案视为完整的答案。
在此处阅读微服务架构:
http://martinfowler.com/articles/microservices.html