与Auth0集成

时间:2017-03-14 05:10:33

标签: publish-subscribe microservices cqrs eventual-consistency

我正在实施用户管理微服务(MS),并希望了解我所做的是否正常。用户是从UI创建的,它与API交互。 API对用户管理MS进行RPC调用,并将CreateUserCommand发布到InMem总线。然后,消费者通过在DB中创建用户来处理命令,但之后我需要在Auth0中注册的用户 - 这样做的方法是将不同的命令发送到持久队列,以便订阅者选择它使用Auth0注册该用户(如果无法访问Auth0则为持久队列)。成功完成后,我可以发布UserCreatedEvent吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您有两个有界上下文:User managementAuthentication

User management BC处理用户的生命周期(创建,变异和删除)。 Authentication BC处理用户如何在系统中识别自己。

因此,即使有(但)没有可能在系统中识别自己,用户也可以存在是一个有效的假设。

话虽如此,您应该在用户管理BC处理AUserWasCreatedEvent后立即发出CreateUserCommand,因为在那一刻用户出生了。它有一个ID,我们将其命名为UserID,因此它存在。

然后,此用户需要一个平均值来标识自己,Saga(或Process manager或您想要调用它的任何内容)捕获事件并创建一个CreateAuth0UserCommand发送它通过调用Auth0 API到Authentication BC。 API会回复一些数据,可能包括token;该令牌由Authentication BC处理,并与UserID

相关联