通过 HTTPS 发送密码:GET 与 POST

Roh*_*hit 6 rest https

我正在创建一个无头 API,它将驱动 Angular 前端。不过,我在弄清楚应该如何处理用户身份验证时遇到了一些麻烦。

显然 API 应该在 SSL 上运行,但出现的问题是我应该如何发送包含用户密码的请求:通过 GET 或 POST。这是一个 RESTFUL API,所以我正在做的是检索信息,这意味着它应该得到一个 GET 请求。但是通过 get 发送密码意味着它是 URI 的一部分,对吗?我知道即使是 GET 请求也是通过 HTTPS 加密的,但这仍然是正确的方法吗?或者这是从 RESTFUL 中断并在正文中包含数据或其他内容的情况(GET 请求可以在正文中包含数据吗?)。

Jos*_*nes 6

如果您在请求标头中传递凭据,则可以使用 GET 或 POST 请求。您可以选择将已建立的 Authorization 标头与您选择的身份验证方案一起使用,或者您可以创建特定于您的 API 的自定义标头。

使用标头字段作为通信凭据的方式时,您无需担心凭据会写入访问日志,因为该日志中不包含标头。使用标头字段也符合 REST 标准,实际上应该用于传达与资源请求/响应相关的任何元数据。此类元数据可以包括但不限于以下信息:集合大小、分页详细信息或相关资源的位置。

总之,始终使用标头字段作为身份验证/授权的手段。