【问题标题】:Track which user performed an api POST from web app client跟踪哪个用户从 Web 应用程序客户端执行了 api POST
【发布时间】:2019-12-08 02:22:33
【问题描述】:

所以我正在为我正在构建的网络应用程序设计一个 REST API。将来,API 也将是公开的,而不仅仅是由应用程序的客户端使用。

当对某些资源进行 POST 时,我想知道哪个用户执行了该操作,因为将来编辑该资源将仅限于创建它的用户。这对于公共 API 来说非常简单,每个用户都有自己的身份验证令牌。

但是,出于 Web 应用程序的目的,我认为我的客户端将只有自己的令牌来使用 API。将当前登录的用户 ID 包含在来自客户端的请求中的最佳方式是什么?

我的想法

  • 在请求中将当前用户 ID 作为自定义标头发送。可能是我想到的最简单的解决方案。
  • 将当前用户 ID 作为正文属性发送。这同样简单,但我不喜欢网络应用发送与公共 API 使用者不同的请求正文的想法。
  • 为我的客户端为每个登录的用户提供不同的令牌。这似乎过于复杂,不值得努力。
  • API 会话。我对此并不太了解,这似乎是不必要的工作。

这个问题的最佳解决方案可能是什么?

【问题讨论】:

    标签: rest api web-applications


    【解决方案1】:

    经过更多思考,亲自询问后,我认为第一方客户端和第三方 API 使用者之间的 API 通信完全一样是最有意义的。

    因此,客户端必须在登录时收到用户令牌以及用户信息,才能代表用户执行操作。

    向我指出的另一个好处是,通过避免客户端的单点访问,安全威胁的可能性较小。

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 2011-05-28
      • 2014-07-04
      • 2011-05-22
      • 2016-10-10
      • 2021-04-20
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多