sm7*_*sm7 4 google-api api-key reverse-geocoding google-geocoding-api
我正在使用浏览器中的Google 反向地理编码 API。
在没有限制地使用 API Key 时,API 工作正常。例如:https://maps.googleapis.com/maps/api/geocode/json?key=API_KEY_WITH_NO_RESTRICTION&latlng=41.8857156,-87.64823779999999- 好的
但当我从浏览器调用 API 时,我想限制 API 密钥,最好是来自某些域的请求。
现在,根据限制指南,HTTP Referer 限制不适用于地理编码 API(Google Web 服务 API 之一)。它返回错误“具有引用限制的 API 密钥不能与此 API 一起使用。” 在这种情况下!
另一种选择是使用IP 地址限制。但如果呼叫是从服务器发出的,它似乎更合适。在这种情况下,可以在限制中添加服务器地址。
如果我想继续从浏览器调用地理编码 API,如何保护(限制)API 密钥?
我发现我必须使用Maps Javascript API才能从浏览器(客户端)调用反向地理编码(地址查找),并为 API 密钥设置HTTP Referer 限制。
在我最初的实现中,我fetch(requestUrl)从浏览器中使用,因为它看起来非常方便,但最终出现了上述问题。
示例(使用 TypeScript):
安装所需的包
npm install @googlemaps/js-api-loader
npm i -D @types/google.maps
Run Code Online (Sandbox Code Playgroud)
reverseGeo.tsnpm install @googlemaps/js-api-loader
npm i -D @types/google.maps
Run Code Online (Sandbox Code Playgroud)
reverseGeo.spec.tsimport { reverseGeo} from './reverseGeo';
it('should test reverseGeo', async () => {
console.log(reverseGeo(22.5726, 88.3639));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |