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