javascript - 嵌入在 JS 中的 Google Calendar API 密钥?
问题描述
我正在用 JS 编写一个使用 Google Calendar API 获取 Google Calendar 事件的应用程序。我已经生成了一个 API 密钥和客户端 ID - 我是否必须做一些事情来尝试“保护”它们?他们的教程将它们直接放在 JS 文件中(https://developers.google.com/calendar/quickstart/js),但随后我进一步研究了开发文档(https://cloud.google.com/docs/authentication /api-keys#securing_an_api_key)并且它说不要将 API 密钥嵌入到代码中......但这可能只是用于付费 API 密钥?
我正在为一堂课编写这个迷你 web 应用程序,所以我只需要它工作 6 周。我通过 GitHub Pages 托管它,它是在我推送代码时提醒我有关 API 密钥的那个。
底线 - 将 API 密钥嵌入到推送到 github 并公开可用的 JS 代码中对我来说是否安全(这样我就可以只拥有一个前端并使用 GitHub Pages)?还是我需要采取某种预防措施?
提前致谢!
解决方案
Api 密钥仅用于访问公共数据。例如,您可以使用它来访问 Google Calendar 公众假期日历。话虽这么说,你应该保密你的 api 密钥而不是分享它,但谷歌知道这对于 JavaScript 这样的客户端语言是不可能的,所以我从来没有听说过有人因为泄露他们的 api 密钥而遇到麻烦。 JavaScript 应用程序。
这个警告主要是说你不应该把它放在任何人都可以下载然后运行的 GitHub 开源存储库中。您必须指导人们如何创建自己的。
话虽如此,如果您尝试访问私人用户数据,那么您应该使用 Oauth2 来验证您的用户,并且由于需要重定向 uri,您可以只锁定您的域。正如您所说,您已经创建了一个客户 ID,我怀疑您已经这样做了。如果您已为 oauth2 添加了客户端 ID,则不需要 javascript 代码中的 Apikey。
推荐阅读
- c# - 在 c# 中为 Vector256 准备数据的最快方法是什么
- spring - 微服务的依赖注入图
- apache-kafka - Kafka Connect JDBC Sink 连接器:找不到类加载器
- gams-math - 如何将一些参数放入一个 gdx 文件
- unit-testing - 如何为 python3 的 webbrowser 模块编写单元测试?
- testing - 组合/连接 TestCafe 选择器以供重用
- django - DRF 显式排序方向
- apollo-server - visitObject 上的匿名函数?
- php - 通过 Redis Hash 存储和搜索
- resources - EMF 资源负载 - SAXParser 读取地图两次