代码之家  ›  专栏  ›  技术社区  ›  Saeed Masoumi

微服务架构中用户服务与认证服务的通信

  •  1
  • Saeed Masoumi  · 技术社区  · 6 年前

    脚本:

    1. 用户输入他的电话号码
    2. 用户必须发送接收到的代码来验证它
    3. 用户必须输入密码

    REST实现

    • 用户呼叫 POST /user/sms 用户服务 . 其中,将向 短信服务

    • 然后用户调用 POST /user/verify 为了验证代码,这个请求将在 . 如果代码有效,用户服务将生成一个临时令牌并将其传递给头响应(假设用户已经注册到系统中)

    • 现在用户通过 POST /user/password 用户服务 将调用 获取JWT令牌并将其附加到 发布/用户/密码 .

    问题

    1 回复  |  直到 6 年前
        1
  •  3
  •   Burim Hajrizaj    6 年前

    我认为你在服务之间划分界限的方式在任何情况下都不是问题。 利弊 我在这里看到的

    用户服务是完全可以的,但是您应该知道,对另一个服务的每个新HTTP调用都会创建“延迟”(您应该考虑到这一点),就像在为释放令牌而进行新HTTP调用时一样。

    当您有一个服务调用另一个服务,而不是引入耦合时。在我看来,如果您不使用任何第三方工具来处理令牌,而我认为您应该在同一个微服务中同时拥有令牌处理和用户,那么我认为这样您就有了更好的有界上下文,而且运行连接更容易,因为这些数据将在同一个数据库中。

    如果您使用第三方工具来处理令牌,那么可以将其放在不同的服务中,因为这样您将创建抽象,并且将来很容易更改工具。

    抬头

    确保每个微服务都有自己的数据库,并且您不会直接访问服务所属上下文之外的任何其他数据库。