在.npmrc中使用身份验证令牌

时间:2018-11-01 10:30:27

标签: npm environment-variables font-awesome

我有一个项目,我们在其中使用了字体超赞的5库。我按照here编写的说明进行操作,并添加了一个vertical-align: middle or bottom or sub文件和我的身份验证令牌。

将其放入存储库中是否安全?我希望开发人员可以使用它,但是如果回购公开,我们可能会公开令牌。

在这种情况下的最佳实践是什么?

2 个答案:

答案 0 :(得分:11)

https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow

将您的秘密令牌导出到您的会话中,例如export NPM_TOKEN="00000000-0000-0000-0000-000000000000"

在您的~/.npmrc内,添加//registry.npmjs.org/:_authToken=${NPM_TOKEN}

答案 1 :(得分:0)

将令牌放入任何git检查的文件(包括.npmrc)绝对是绝对不安全

以下是您的团队可以采取的安全使用npm令牌的步骤。

要考虑两种不同的环境:

  1. 每个开发人员的本地开发机
  2. 该应用程序的部署平台

本地开发人员

在问题中链接到您的Global Set Up instructions之后不是解决方案。

创建类似于"Per project" instructions的.npmrc文件,,但将实际令牌替换为以$为前缀的变量名称。即:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=$TOKEN

npm将检测到名为.env的环境变量文件。因此,在.gitignore d .env文件中,添加您的密钥值对,即:

TOKEN=ABC123

您还可以根据npm-config docs,在变量名前加上“ NPM_CONFIG_”,即:

NPM_CONFIG_TOKEN=ABC123

现在,当开发人员运行npm i时,将会从私有仓库中加载超棒的字体依赖项。

注意:请勿关注有关环境变量语法的当前npm-config文档!参见this stack overflow answer,即:

 BAD npm-config ENVIRONMENT VAR SYNTAX 

${TOKEN}
 GOOD npm-config ENVIRONMENT VAR SYNTAX 

$TOKEN

应用程序部署平台

执行以上本地开发部分中的所有步骤,加号:

  • 在平台上创建一个与.npmrc文件中相同名称的环境变量。

如果您的应用程序宿主是Netlify,请参见其Build Environment Variables docs