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

7rfyedvj  于 2023-02-16  发布在  其他
关注(0)|答案(3)|浏览(287)

我有一个项目,我们使用字体awesome 5库。我按照这里写的说明,用我的auth令牌添加了一个.npmrc文件。
这是一个安全的行为,把它放在一个回购协议?我希望开发人员有访问它,但如果回购协议公开,我们可能会暴露令牌。
在这种情况下,最佳做法是什么?

pqwbnv8z

pqwbnv8z1#

    • 2021年5月2日更新**

这个答案仍然值得怀疑--见下面的评论。我再也无法访问私人($paid)npm账户了,所以我再也不能通过测试来回答问题了。
也许试试"konyak的回答"。
将令牌放入任何git检查过的文件(包括. npmrc)绝对不是安全的行为。
以下是您的团队可以采取的安全利用npm令牌的步骤。
需要考虑两种不同的环境:
1.每个开发人员的本地dev计算机
1.应用程序的部署平台

本地开发

按照您在问题中链接到的全球设置说明进行操作并不是解决方案。
创建类似于"Per project"说明的. npmrc文件,但用变量名替换真实令牌,前缀为$。即:

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

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

TOKEN=ABC123

根据npm-config文档,您还可以在变量名前加上"NPM_CONFIG_"前缀,即:

NPM_CONFIG_TOKEN=ABC123

现在,当dev运行npm i时,font-awesome依赖项将从私有repo加载。

一个三个三个一个

应用程序部署平台

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

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

如果您的应用主机是Netlify,请参阅其构建环境变量文档。

vlurs2pr

vlurs2pr2#

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}

vmdwslir

vmdwslir3#

我将相关的config行和标记放在主目录下的.npmrc文件中,然后可以使用filesystem / OS权限来保护它,避免意外地将它签入到源代码管理中,NPM将自动读取它,而无需您采取进一步的操作。
在项目目录中,我们有.npmrc,它只包含一个作用域注册表声明(@fontawesome:registry=https://npm.fontawesome.com/),还有一个单独的ci.npmrc,它包含作用域注册表声明和变量替换authToken赋值:

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

CI构建作业只需在使用npm执行任何操作之前将.npmrc替换为ci.npmrc,并使用分配给适当服务帐户的auth令牌设置一个秘密环境变量。

相关问题