REST API 中有 2 个强制标头有意义吗?

问题描述 投票:0回答:1

背景:

我正在构建一个 REST API,其中我们的所有端点都受到保护。 API 的使用者是一家酒店。每家酒店都有一个唯一的 API 密钥。酒店有客人。每位客人在该酒店内都有一个唯一的 ID。酒店有责任为每个用户确定一个唯一的 ID。

当客户端应用程序使用我们的 API 时,我们使用 API 令牌和唯一用户 ID 来确定:

  • 酒店是否可以使用我们的服务(
    api_key
    )
  • 该酒店内的客人是谁,这样我们就知道要向他们提供哪些数据(
    unique_user_id
    )

这使得

api_key
unique_user_id
成为必填字段。

问题:

我已经开始使用 swagger 实现此规则和文档,但是:

  • Swagger 的设计似乎不允许有 2 个强制标头
  • 我正在使用的框架(tsoa)并没有让这项任务变得容易,而且有 2 个强制标头似乎有点 hacky

所以我的问题是:

首先拥有 2 个强制标头是一个好主意吗? 也许

unique_user_id
应该放在有效负载(对于 POST)和 url 参数(GET)中?

将所有内容都放在标题中似乎更干净,因为无论如何它们都是强制性的,但我想知道在这方面是否有任何最佳实践。你有什么想法?

rest swagger tsoa
1个回答
1
投票

我建议您考虑使用令牌身份验证

  • 在此架构中,您使用一个标头(授权:承载者
    token
    )。
  • 在 JWT(Json Web Token)中,您可以输入所有必要的信息。
  • 并且使用OAuth 2.0,您不必担心token内部的信息被篡改。
© www.soinside.com 2019 - 2024. All rights reserved.