【发布时间】:2021-12-16 07:44:50
【问题描述】:
我知道对此没有单一的解决方案,但我想听听有关该问题的不同最佳方法。
让我澄清一下,假设我们有一个订单微服务和两种使用此服务的用户。[买家(网站)和后台(管理站点)用户。]
我的问题是微服务是否应该了解用户类型并决定根据用户类型返回哪些数据?
假设我们的端点是 ; api.mycompany.com/orders
所以当买家调用这些端点时,服务应该返回买家的订单,但如果后台用户调用服务应该返回所有订单数据。
我认为这种情况有 3 个选项,
1.在端点识别用户类型,做一些if-else逻辑并返回相关数据。
2.为买方和后台用户提供单独的端点。 (/buyer/orders, /admin/orders)
3.用户不知道微服务。只需传递用户ID作为过滤选项。
所以我正在努力寻找最合乎逻辑的方法。
【问题讨论】:
-
老实说,我不知道这种情况的最佳实践,但发现这个问题真的很有趣。我可能会使用带有角色装饰器的版本 3(在打字稿中)。渴望听到其他解决方案!
-
您是使用 OAuth2.0 Saml 还是其他方式来保护您的 API?如果是,您可以通过验证令牌来完成,管理员或买家的授权应该不同。这将是一个基于角色的授权模型。
标签: api authorization microservices api-design