如何正确地将身份验证令牌放入 GET 请求的 header

How to properly put the auth token in the header for a GET request

我正在尝试使用 blockcypher.com 向 api 发出获取请求。在文档中,他们只是将 api 标记附加到带有 ?token= 的 URL 或者如果它是多个参数 &token= 的一部分。出于安全原因,将其放入 headers 以确保令牌不会在 URL 中发送的正确协议是什么?

我已经尝试过做这个公式

var client = _clientFactory.CreateClient(nameof(<Parent Function Name>));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", <API Token Here>);

这没有用。我的 blockcypher 帐户声称当我使用上述代码时没有向我的 API 发送任何请求。

如果您呼叫的 API 不支持 Authorization header,您将无能为力。通过查看 BlockCypher 的文档,他们似乎只支持将令牌作为 URL 参数传递。 Authorizationheader很标准,不支持才怪

只要您只是进行 server-to-server 通信(而不是浏览器或移动应用程序),这并没有您想象的那么大的安全风险。当您使用 HTTPS 时,请求 URL 已加密(请参阅 Is an HTTPS query string secure?)。