【问题标题】:How do you handle the principal in microservice and REST API?您如何处理微服务和 REST API 中的主体?
【发布时间】:2021-05-31 14:03:29
【问题描述】:

假设您正在构建一个评论系统,其中经过身份验证的用户必须发布 cmets。认证协议为Oauth2。

您有一个 API POST /comment 并且您在请求正文中传递了注释。

我的问题:因为用户是经过身份验证的,所以创建评论的用户的身份将被 API 实现知道。您是否还在请求正文中包含用户的 ID?还是只使用 oauth 协议提供的主体?

【问题讨论】:

    标签: java rest microservices


    【解决方案1】:

    您应该使用经过身份验证的用户的身份,在本例中为委托人。因为如果您在正文中也添加用户 ID,任何人都可以使用例如浏览器调试工具和评论来更改它,就像他是另一个用户一样。

    如果您使用 OAuth 2.0,则有两个选项,如果您使用不透明令牌,则应调用 OAuth 服务器的用户信息端点以获取给定令牌的用户详细信息。如果您使用的是 jwt 令牌,则用户 ID 应该在 sub 声明中。无论您选择哪种选项,您都应该使用您的身份验证机制提供的用户身份

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2017-12-13
      • 2017-03-19
      相关资源
      最近更新 更多