【问题标题】:Exclusive endpoint for authenticated user in a Rest API using JWT使用 JWT 的 Rest API 中经过身份验证的用户的专有端点
【发布时间】:2017-08-02 16:33:37
【问题描述】:

我开始为预订应用程序设计一个 Rest API。我过去开发了一些 Rest API,但这是我第一次单独设计它。我正在通过 JWT 使用用户身份验证。

因此,假设我想检索经过身份验证的用户的首选项。什么是最“休息”的选择?

  1. /users/:userId/preferences 并在 Authorization 标头中发送 JWT 以检查 userId 是否与经过身份验证的用户相同。

  2. /me/preferences 并且仅发送 JWT 以获取经过身份验证的用户的首选项。

由于面向资源的端点,第一个选项似乎是最“休息”的选项,但是您需要将 userId 存储在客户端中,然后使用 JWT 将其发送到 API。看起来有点重复吧?

我看到像 PayPal 这样的大 API 使用第二个选项,而像 AirBnB 这样的其他 API 使用第一个散列 userId。

哪个选项更好,为什么?我对此很怀疑...谢谢。

【问题讨论】:

    标签: rest api jwt api-design restful-url


    【解决方案1】:

    想想 API 需要支持哪些其他场景。比如是否只需要显示一些用户信息:

    GET /users/:userId/

    这可能是具有提升权限的用户的一项功能,因此JWT 数据将不同于userId。因此我会选择第一个选项,没关系REST,它似乎比将自己绑定到/me 端点更具可扩展性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2020-08-02
      • 2020-07-22
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      相关资源
      最近更新 更多