我有一个项目,我们使用 font awesome 5 库。我按照此处编写的说明操作,并添加了一个.npmrc带有我的身份验证令牌的文件。
将其放入回购中是一种安全的行为吗?我希望开发人员可以访问它,但是如果 repo 公开,我们可能会暴露令牌。
在这种情况下,最佳做法是什么?
发布到托管在我的私有 Nexus 上的私有 npm 注册表时,我遇到了身份验证问题。
我的 Nexus 设置是我有npm-proxy、npm-registry(托管 npm with allowRepublish=false)、npm-snapshots(托管 npm with allowRepublish=true)和npm-public(与所有其他三个存储库分组)。
由于我正在开发一个库,我使用的是我的快照存储库,所以我可以不断地重新部署相同的版本(类似于 Maven 世界中的快照)。
在我的库项目中,我在package.json 中设置了这个选项
"publishConfig": {
"registry": "https://my.nexus.com/repository/npm-snapshots/"
}
Run Code Online (Sandbox Code Playgroud)
接下来,我创建了包含以下内容的.npmrc文件:
registry=https://my.nexus.com/repository/npm-public/
_auth=RVhBTVBMRQ==
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我可以毫无问题地发布项目。但是,让我烦恼的是,我的密码(只是 base64 编码)存储在文件中,应该提交,但由于其中的凭据,我无法提交。
我试图改为登录 npm 注册表并从 .npmrc 中删除了 auth 行
npm adduser --registry=https://my.nexus.com/repository/npm-snapshots --always-auth
我得到了回应 Logged in as myusername on https://my.nexus.com/repository/npm-snapshots.
但是,当我尝试运行时,npm publish我得到:
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository …Run Code Online (Sandbox Code Playgroud) 我想通过bash脚本自动执行npm登录过程.
我尝试使用此代码段:
/usr/bin/expect -f - <<EOD
spawn npm adduser
expect "Username:"
send "myUserName\n"
expect "mail: (this IS public)"
send "my@email.com\n"
EOD
Run Code Online (Sandbox Code Playgroud)
但没有运气.
注意:我将使用env变量更改字符串
我需要npm login在脚本中传递凭据有没有办法提供类似于 git 凭据的凭据?
git clone https://username:password@github.com
Run Code Online (Sandbox Code Playgroud) 这个问题与这些有关。但是没有一个解决方案对我有用。
我可以安装一个没有问题的包,npm install @scope/package但是我不能用纱线做同样的事情:yarn add @scope/package
纱线抛出以下错误:
An unexpected error occurred: "https://npm.pkg.github.com/download/@scope/package/1.2.8/089b08cffb16074c210ec3a59b04de268ae1c7b3a0492dce110adee3ada05bdd: Request failed \"401 Unauthorized\"".
我的 .npmrc 文件看起来像这样:(在 .yarnrc 下尝试和不使用)
registry=https://registry.npmjs.org/
//npm.pkg.github.com/:_authToken=MY_AUTHTOKEN
@scope:registry=https://npm.pkg.github.com/
Run Code Online (Sandbox Code Playgroud)
我试过添加这个 .yarnrc 文件:
registry "https://registry.npmjs.org"
"@scope:registry" "https://npm.pkg.github.com"
Run Code Online (Sandbox Code Playgroud)
(没有 .yarnrc)我试过这个 .npmrc 文件
registry=https://registry.yarnpkg.com/
@scope:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=MY_AUTHTOKEN
always-auth=true
Run Code Online (Sandbox Code Playgroud)
MY_AUTHTOKEN我Personal Access Token从 Github 生成的我在哪里。(它可以访问包中的所有内容)
我试图:
npm login使用我的PAT作为密码yarn login万一出现任何混淆,我实际上并不是在尝试 @scope 和 /package,而是在尝试我的实际作用域和包名称。 …
我想使用访问令牌从CI环境中发布和从人工npm回购中检索。我已经使用工件API创建了Bearer令牌,但是当我尝试将其用于.npmrc格式的访问时:
//mydomain.jrog.io/:_authToken=myveryverylongaccesstoken
registry=https://mydomain.jfrog.io/mydomain/api/npm/npm
Run Code Online (Sandbox Code Playgroud)
我总是收到401错误。
另外,尽管可能是一个不同的问题,但是如果我尝试使用具有实际工件凭证的npm login,则会得到响应:
adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser
npm WARN adduser https://npmjs.org/forgot
npm WARN adduser
npm ERR! code E403
npm ERR! forbidden No oauth npm default login configuration found: org.couchdb.user:myusername
Run Code Online (Sandbox Code Playgroud)
围绕访问令牌的人工文档明确表示这是设置访问令牌的一种用例,但是围绕npm repo alwyas设置的文档似乎暗示您需要一个真实的用户帐户,而没有提及访问令牌。 。
npm ×5
command-line ×2
access-token ×1
artifactory ×1
bash ×1
font-awesome ×1
nexus ×1
node.js ×1
npm-login ×1
npm-registry ×1
registry ×1
shell ×1
terminal ×1
yarnpkg ×1