我应该在同一个微服务中实现 OAuth2 端点和用户数据端点吗?
Should I implement OAuth2 endpoints and User Data endpoints in the same microservice?
我正在构建一个实现 OAuth 2 以进行用户身份验证的微服务。我的疑惑是如果获取当前用户信息的topic(例如:/users/me获取到json编码的用户数据),应该在同一个微服务中实现,还是应该在不同的微服务中实现遵循领域驱动设计模式的微服务。
这取决于您的服务架构,您的域是如何组织的。但一般来说,在 UserData 微服务之外设置身份验证服务器是有意义的,因为
- Auth 服务器端点将比用户数据端点使用更多,因为它验证令牌,即任何请求的入口点。它允许您单独扩展身份验证。
- 有些微服务并不真正需要用户数据,它们只需要范围(可能还有 userID and/or 一些基本信息?)来为请求提供服务。
- 用户数据不仅仅意味着用户 ID,它还可以包括从姓名、地址到(但不限于)SSN 或个人资料图标(与身份验证无关)的详细信息
但另一方面,如果您的应用程序需要用户数据作为身份验证响应负载的一部分,或者如果您不打算拥有大量微服务,那么在同样的服务。如果您计划在将来拆分它们,则维护具有持久层分离的服务边界会有所帮助。
我正在构建一个实现 OAuth 2 以进行用户身份验证的微服务。我的疑惑是如果获取当前用户信息的topic(例如:/users/me获取到json编码的用户数据),应该在同一个微服务中实现,还是应该在不同的微服务中实现遵循领域驱动设计模式的微服务。
这取决于您的服务架构,您的域是如何组织的。但一般来说,在 UserData 微服务之外设置身份验证服务器是有意义的,因为
- Auth 服务器端点将比用户数据端点使用更多,因为它验证令牌,即任何请求的入口点。它允许您单独扩展身份验证。
- 有些微服务并不真正需要用户数据,它们只需要范围(可能还有 userID and/or 一些基本信息?)来为请求提供服务。
- 用户数据不仅仅意味着用户 ID,它还可以包括从姓名、地址到(但不限于)SSN 或个人资料图标(与身份验证无关)的详细信息
但另一方面,如果您的应用程序需要用户数据作为身份验证响应负载的一部分,或者如果您不打算拥有大量微服务,那么在同样的服务。如果您计划在将来拆分它们,则维护具有持久层分离的服务边界会有所帮助。