在服务器端使用 Google 地图限制 API 键 ASP.NET 核心

Use Google Maps restricted API key on server side ASP.NET Core

我在生产环境中有一个使用大量 Google 地图服务的应用程序,因此我创建了一个具有 HTTP referrers 限制的受限 API 密钥。受限密钥可以很好地从客户端发送请求(加载地图等),但我在服务器端使用它时遇到了麻烦,因为我从 ASP.NET 核心控制器发送了一些请求。在发送请求之前,我设置了 Referer header,但请求仍然被拒绝:

var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Referrer = new Uri(_configuration.GetValue<string>("Google:RequestReferrer")); //referrer string is set in the appsettings.json file
var client = _httpClientFactory.CreateClient();
var response = await client.SendAsync(request);

是否可以通过某种方式设置正确的请求 headers 在客户端和服务器端使用相同的受限密钥,或者我是否应该为服务器创建一个受 IP 限制的新 API 密钥侧面用法。

谢谢。

没有。如果您要发出 2 种不同类型的请求(客户端和服务器端),您应该有一个单独的 API 密钥限制在客户端的 HTTP 引荐来源网址,以及一个 API 密钥限制在 IP服务器端的地址。

您还可以访问 API 关键最佳实践 here 了解更多详细信息。