Javascript 在NodeJS CLI工具中安全访问密钥

Javascript 在NodeJS CLI工具中安全访问密钥,javascript,node.js,environment-variables,command-line-interface,Javascript,Node.js,Environment Variables,Command Line Interface,我有一个与SpotifyAPI集成的NodeJS终端实用程序。基本流程是: 用户在终端中启动cli工具 CLI工具打开浏览器并完成oAuth 2.0流程 应用程序在用户的文件系统上存储access_令牌和refresh_令牌 应用程序使用凭证获取当前播放歌曲的插图,并在终端中显示 我的实际应用程序正在运行,但目前它依赖于Spotify APIclientId和clientKey,Spotify文档建议对clientKey保密 显然,我不希望每个用户都必须在spotify上注册他们的开放应用程

我有一个与SpotifyAPI集成的NodeJS终端实用程序。基本流程是:

  • 用户在终端中启动cli工具
  • CLI工具打开浏览器并完成oAuth 2.0流程
  • 应用程序在用户的文件系统上存储access_令牌和refresh_令牌
  • 应用程序使用凭证获取当前播放歌曲的插图,并在终端中显示
我的实际应用程序正在运行,但目前它依赖于Spotify API
clientId
clientKey
,Spotify文档建议对
clientKey
保密

显然,我不希望每个用户都必须在spotify上注册他们的开放应用程序才能使用该工具

是否有一种安全的方式来存储我的
clientKey
,允许用户

npm安装


然后运行?

最佳选择是一个环境变量(IMO),请参阅:由于此应用程序必须通过npm分发,因此将密钥存储在源代码或包中的某个位置不是最佳方法。在这种情况下,每个人都可以访问您的秘密并使用它。我建议使用一些远程服务器来响应所有必需的信息(密钥等)并使用Spotify access_令牌保护此端点。我认为这就是问题所在-我考虑使用远程服务器,但我需要Spotify
clientId
clientSecret
与Spotify进行身份验证,以便首先获得
access_令牌。我可以为通过终端注册的用户建立一个单独的数据库,但这需要做更多的工作