Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.npmrc中使用身份验证令牌_Npm_Environment Variables_Font Awesome - Fatal编程技术网

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

在.npmrc中使用身份验证令牌,npm,environment-variables,font-awesome,Npm,Environment Variables,Font Awesome,我有一个项目,我们使用的字体真棒5库。我按照编写的说明添加了一个带有auth令牌的.npmrc文件 将其纳入回购协议是否安全?我希望开发人员能够访问它,但如果回购协议公开,我们可能会公开令牌 在这种情况下,最佳做法是什么?更新2021-05-02 这个答案仍有疑问-请参阅下面的评论。我再也不能访问私人(付费)npm帐户了,所以我再也不能测试回答问题了 也许试试@konyak的答案 将令牌放入任何git检查过的文件(包括.npmrc)中肯定不是一种安全的行为 以下是您的团队可以采取的安全利用您的

我有一个项目,我们使用的字体真棒5库。我按照编写的说明添加了一个带有auth令牌的
.npmrc
文件

将其纳入回购协议是否安全?我希望开发人员能够访问它,但如果回购协议公开,我们可能会公开令牌


在这种情况下,最佳做法是什么?

更新2021-05-02

这个答案仍有疑问-请参阅下面的评论。我再也不能访问私人(付费)npm帐户了,所以我再也不能测试回答问题了

也许试试@konyak的答案


将令牌放入任何git检查过的文件(包括.npmrc)中肯定不是一种安全的行为

以下是您的团队可以采取的安全利用您的npm代币的步骤

有两种不同的环境需要考虑:

  • 每个开发人员的本地开发机器
  • 应用程序的部署平台
  • 本地开发人员 按照您在问题中链接到的选项,不是解决方案

    创建类似于,的.npmrc文件,但用变量名替换真实令牌,前缀为
    $
    。即:

    @fontawesome:registry=https://npm.fontawesome.com/
    //npm.fontawesome.com/:_authToken=$TOKEN
    
    npm将检测名为
    .env
    的环境变量文件。因此,在
    .gitignore
    d.env文件中,添加您的密钥-值对,即:

    TOKEN=ABC123
    
    您还可以根据,即,在变量名前面加上“NPM_CONFIG_”前缀:

    现在,当dev运行
    npmi
    时,将从私有repo加载字体依赖项

    注意:关于环境变量语法,不要遵循当前的npm配置文档!见,即:

    将您的秘密令牌导出到会话中,例如,
    Export NPM_token=“00000000-0000-0000-0000-000000000000”


    在您的
    ~/.npmrc
    中,添加
    //registry.npmjs.org/:\u authToken=${NPM\u TOKEN}

    NPM安装从.env读取的文档记录在哪里?此解决方案不适用于我,未检测到环境变量。在.npmrc中,不需要“$”您如何防止
    npm login
    将您的身份验证令牌放回那里?您链接到的关于为什么
    $token
    ${token}
    更可取的答案已被删除(而且,从来没有解释过为什么应该优先选择
    $TOKEN
    ,只是说它应该优先)。请详细说明一下:为什么
    $TOKEN
    ${TOKEN}
    更可取?如果一个对你有效,而另一个对你无效,你使用的是哪个操作系统?关于扩展的答案是不正确的
    $TOKEN
    ${TOKEN}
    在扩展到什么方面是相同的。引用bash手册
    中的“$”字符会引入参数扩展、命令替换或算术扩展。要扩展的参数名称或符号可以用大括号括起来,大括号是可选的
    (lmk如果你想让我链接到zsh手册,说同样的话:D)这是我在过去4个小时里寻找的答案!我不知道我发现的所有其他答案在Win&Mac上是否都有效,但这实际上是我在Linux上唯一有效的解决方案!谢谢你!(我只能向上投票1次……这需要更多的向上投票!)
    NPM_CONFIG_TOKEN=ABC123