在 REST API 中放置验证码令牌的最佳位置是哪里

nta*_*ang 3 rest captcha api-design recaptcha

我正在设计一个 REST api,允许客户端 POST(创建)资源。我们称我的资源为 is Subscription,我的 REST api 接受一个名为 POST 请求的 Dto,Subscription 该 POST 请求需要与将在服务器端进行验证的验证码令牌一起发送。

我的问题是哪里是放置验证码令牌的最佳位置,我正在考虑一些选项:

  1. 直接在里面Subscription
  2. 作为 URL 中的参数,例如:/subscriptions?captcha_token=abcd1234
  3. 作为 HTTP 标头
  4. 创建一个新的 Dto 来包装Subscription并携带字段captchaToken

欢迎任何其他建议。

谢谢。

joe*_*elc 5

对于任何与身份验证或授权相关的内容,我通常依赖标头或查询字符串参数。

一般来说,我不喜欢将有效负载与身份验证相关的材料混合在一起,也不喜欢封装它。

将其放在 HTTP 标头中或作为查询字符串参数可以为您提供良好的隔离性。此外,由于它独立于请求正文,因此您可以为每个 API 调用实现更广泛的身份验证控制,而无需依赖于请求正文的存在(对于无论如何不应携带请求正文的 GET 请求很重要)。