我正在开发一个基于 esri javascript api 的非常轻量级的 Web 应用程序,用于我自己的学习/“乐趣”。
我的 API 密钥的范围和功能仅限于单个(路由)位置服务。该应用程序只会在 2 个用户选择的点之间绘制一条路线。
我很高兴可以将该 api 密钥保密并在本地部署时从我的应用程序中调用它,但如果我希望密钥安全,我不知道是否应该将该应用程序部署到服务器上的最佳实践和选项.
据我了解,托管应用程序需要从外部(到应用程序代码树)源调用该 api 密钥,但不向使用该应用程序的客户端公开该密钥的值。如何最好地实现这一点以及使用什么工具?我是否需要编写一个返回该键值的基于服务器的脚本?这里有一个非常明显的选择吗?
谢谢
我不知道各种授权选项的优点 - 很可能有更好的选择来实现相同的结果。
如果我对您的问题的理解有误,请随时纠正我。 不过,我在 heroku 上托管了一个使用 API 密钥的 Web 应用程序。 因此,最佳实践是将 API Secret KEY、JWT 令牌等存储在 .env 文件中。
在项目根目录中创建一个 .env 文件并保存密钥,如下所示:
API_KEY=XXXXXXXX
然后你可以使用 dotenv npm 模块从环境文件中加载密钥。
通过将 .env 添加到 .gitignore 中,确保将 .env 排除在 git 跟踪之外
一旦本地分支完美运行并且本地服务器启动并运行。如果您想让您的项目开源,请将其上传到 github,但是要将其托管在像 heroku 这样的任何托管服务上,您还需要推送您的 .env 文件。
因此,您可以在本地存储库中进行最终提交并添加 .env 文件,也可以使用您选择的托管服务在项目根目录中上传 .env 文件。