如何存储命令行工具的敏感信息?

时间:2016-12-23 23:22:37

标签: node.js command-line client

假设您构建了一个位于需要访问令牌的API之上的客户端。客户端的用户可以插入他们的访问令牌,生活很美好。

假设您想要构建一个简单的命令行工具来执行使用此客户端的命令。而且,让我们说你想通过一些包管理系统(例如npm,pypi等)从外部访问这个工具。

有没有办法在不暴露命令行工具将使用的访问令牌的情况下执行此操作?

显然,您可以让此命令行工具的每个用户输入自己的访问令牌,而不是使用应用程序的访问令牌。

1 个答案:

答案 0 :(得分:0)

如果您希望限制谁可以下载您的工具并保留应用程序访问令牌,您可以使用Artifactory或类似产品来设置私有存储库。缺点(除了无法对未经授权的重新分发做任何事情)是您的用户需要将他们的身份验证详细信息添加到他们的.npmrc或类似内容以便连接到私人仓库,所以您真的只是将问题放在一个删除。如果你要经过npm,你需要scope你的包名或让用户玩弄多个注册表。

您的工具还可以在启动时读取配置文件并从中获取用户访问令牌,就像您将如何读取本地数据库的连接信息一样。配置文件未分发,或作为样本提供,目的是让最终用户在使用前编辑其详细信息。