首页 > 解决方案 > 嵌入在 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)?还是我需要采取某种预防措施?

提前致谢!

标签: javascriptgoogle-calendar-apigithub-pages

解决方案


Api 密钥仅用于访问公共数据。例如,您可以使用它来访问 Google Calendar 公众假期日历。话虽这么说,你应该保密你的 api 密钥而不是分享它,但谷歌知道这对于 JavaScript 这样的客户端语言是不可能的,所以我从来没有听说过有人因为泄露他们的 api 密钥而遇到麻烦。 JavaScript 应用程序。

这个警告主要是说你不应该把它放在任何人都可以下载然后运行的 GitHub 开源存储库中。您必须指导人们如何创建自己的。

话虽如此,如果您尝试访问私人用户数据,那么您应该使用 Oauth2 来验证您的用户,并且由于需要重定向 uri,您可以只锁定您的域。正如您所说,您已经创建了一个客户 ID,我怀疑您已经这样做了。如果您已为 oauth2 添加了客户端 ID,则不需要 javascript 代码中的 Apikey。


推荐阅读