CQRS 中是否有登录/注册命令或查询

卢卡·米卡维卡

所以对于登录,因为它并没有真正在数据库中产生任何新的东西,而只是在我们登录时返回,可能还有一些用户数据,它应该是命令还是查询?

至于注册机,既然是创建新用户,那它应该是一个命令吗?如果我想返回用户数据或 jwt 怎么办?

我应该运行我的命令并且一旦客户端收到响应就在它们之后运行查询吗?

阿拉德

与大多数与设计相关的问题一样,我会用“取决于”来回答这个问题。我已经看到这两种解决方案都在不同的情况下实施。

您需要问的主要问题是您是否将用户登录视为系统的状态更改。请注意,它是否更改数据库中的状态无关紧要。系统不仅仅是数据库。

作为命令登录

对于某些系统,了解哪些用户已登录以及何时、从何处等很重要。我见过的一个例子是一个医疗系统,它需要记录哪个医生在何时何地登录,以及访问了哪些医疗记录. 此外,在一台机器上登录会停止另一台机器上的会话。这些操作的可靠跟踪对于应用程序至关重要。因此,登录是作为生成存储在事件存储中的事件的命令实现的。投影保持每个用户的当前登录状态。

作为查询登录

然而,我见过的大多数系统都只是简单地知道任何给定的凭据是否可以映射到用户帐户。如果是这种情况,则会生成一个包含身份验证“证明”的令牌。系统本身并不真正关心谁登录。只是每个请求都需要通过检查“证明”来验证。在这种情况下,登录是一个查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章