アクセストークンを使用して、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リポジトリの設定に関するドキュメントは、実際のユーザーアカウントが必要であり、アクセストークンについては言及していないようです。 。
あなたのアーティファクトバージョンは何ですか?
「npmlogin」の方法は5.4(別名_authToken)以降でのみサポートされているため、それを下回っている場合は、BASIC認証(別名_auth)で認証するしかありません。
基本認証のセットアップはかなり簡単です。Artifactoryは、セットアップに役立つ簡単なエントリポイントを提供します。npmrc
以下を起動します(そして、userとencrypted_passwordを認証したいArtifactoryユーザーアカウントに置き換えることを忘れないでください)
curl -u user:encrypted_password https://mydomain.jfrog.io/mydomain/api/npm/auth
それは次のようなものを出力します
_auth = YourLongBasicAuthToken always-auth = true email = [email protected]
これらの3行を。npmrcにコピーすると、これでうまくいくはずです...
他の回答の_auth行は、npmjsからのスコープ付きパッケージの取得を中断します。使用していた1つのレジストリに対して特定の_authを使用する必要があることがわかりました。ここで私の元の答えを参照してください https://stackoverflow.com/a/57014522/442837
Windowsユーザーの場合:-
1 /https://registry.npmjs.orgを.npmrcに追加して上部のユーザープロファイルに追加します。
registry=https://registry.npmjs.org
または2 /以下のコマンドを実行
npm config set registry https://registry.npmjs.org
.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)を任意のユーザーとアクセストークンで設定します