web-dev-qa-db-ja.com

npmリポジトリにアクセスするためにアーティファクトアクセストークンをどのように使用する必要がありますか

アクセストークンを使用して、CI環境のアーティファクトnpmリポジトリを公開および取得したいと思います。アーティファクトAPIを使用してBearerトークンを作成しましたが、それを.npmrcでのアクセスに使用しようとすると、次の形式になります。

//mydomain.jrog.io/:_authToken=myveryverylongaccesstoken
registry=https://mydomain.jfrog.io/mydomain/api/npm/npm

私は常に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

アクセストークンに関するアーティファクトドキュメントは、これがアクセストークンを設定するための一種のユースケースであると明示的に述べていますが、npmリポジトリの設定に関するドキュメントは、実際のユーザーアカウントが必要であり、アクセストークンについては言及していないようです。 。

6
Robin Southgate

あなたのアーティファクトバージョンは何ですか?

「npmlogin」の方法は5.4(別名_authToken)以降でのみサポートされているため、それを下回っている場合は、BASIC認証(別名_auth)で認証するしかありません。

基本認証のセットアップはかなり簡単です。Artifactoryは、セットアップに役立つ簡単なエントリポイントを提供します。npmrc

以下を起動します(そして、userとencrypted_pa​​sswordを認証したいArtifactoryユーザーアカウントに置き換えることを忘れないでください)

curl -u user:encrypted_password https://mydomain.jfrog.io/mydomain/api/npm/auth

それは次のようなものを出力します

_auth = YourLongBasicAuthToken always-auth = true email = [email protected]

これらの3行を。npmrcにコピーすると、これでうまくいくはずです...

13
Arnaud Jeansen

他の回答の_auth行は、npmjsからのスコープ付きパッケージの取得を中断します。使用していた1つのレジストリに対して特定の_authを使用する必要があることがわかりました。ここで私の元の答えを参照してください https://stackoverflow.com/a/57014522/442837

1
dres

Windowsユーザーの場合:-

1 /https://registry.npmjs.orgを.npmrcに追加して上部のユーザープロファイルに追加します。

registry=https://registry.npmjs.org

または2 /以下のコマンドを実行

npm config set registry  https://registry.npmjs.org
0
Abhishek Singh

.npmrcのコンテンツを生成するには、adminなどの既存のユーザーとそのパスワードを使用します

curl -uadmin:<PASSWORD> http://<ARTIFACTORY_SERVER_DOMAIN>/artifactory/api/npm/auth

その後、_authキーをbase64でエンコードされたusername:ACCESS_TOKENに置き換える/設定できます。

スコープ付きパッケージの場合は、

curl -uadmin:<PASSWORD> http://<ARTIFACTORY_SERVER_DOMAIN>/artifactory/api/npm/npm-repo/auth/<SCOPE>

..username.._password(base64)を任意のユーザーとアクセストークンで設定します

0
pHiL