在一个有棱角的应用程序中保护谷歌地图api密钥



我使用的是角度地图和谷歌地图。在我找到的所有教程中,说明如下:添加到您的index.html代码:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR-API-KEY" type="text/javascript"> </script>

在这种方法中,API密钥存储在我的源代码中,这是不推荐的。

如何在角度上进行不同的处理?

通常我会通过引用URL来限制我的api密钥。

https://developers.google.com/maps/api-key-best-practices#apply_apikey_restrictions

我知道不久前有人问过这个问题,但我只是在寻找同一问题的答案时遇到的。以下是我的想法:

  1. 我通过引用URL保护我的密钥
  2. 我创建了一个服务,保存我的谷歌地图类型和模块导入。该服务处理所有与谷歌地图API相关的事情。在服务中,我创建了一个google脚本标记的字符串属性,其中包含我的api密钥,我还为脚本标记提供了一个自定义的id=""属性。然后,在我的新服务的构造函数中,我检查是否存在带有if ( !document.getElementById('my-custom-id') ) { append script }的标记。如果找不到该标记,构造函数将把它附加到<head>标记上

目的是,除非用户正在访问实际需要的组件,否则脚本标记永远不会出现在head标记中。我的实现是在登录之后,因此您需要登录才能使用Google Maps API功能访问组件。scraper需要绕过登录才能找到脚本标记(这不会发生(。

最新更新