programing

npm을 통해 Azure DevOps 아티팩트 피드에 연결하려고 할 때 '인증할 수 없음'; E401 오류가 발생합니다.

starjava 2023. 4. 27. 21:45
반응형

npm을 통해 Azure DevOps 아티팩트 피드에 연결하려고 할 때 '인증할 수 없음'; E401 오류가 발생합니다.

Azure DevOps 아티팩트 피드에 연결하려고 하는데 E401 오류가 계속 발생합니다.

다른 컴퓨터로 해봤는데 잘 연결됐어요.Node.js를 제거하고 다시 설치했는데 오류가 발생했습니다.

다음은 'npm install'을 실행할 때 발생하는 오류입니다.

npm ERR! code E401
npm ERR! Unable to authenticate, need: Bearer authorization_uri=https://login.windows.net/*********, Basic realm="https://pkgsprodcus1.pkgs.visualstudio.com/", TFS-Federated

아래는 .npmrc 파일에 추가된 내용입니다.

registry=https://[org].pkgs.visualstudio.com/_packaging/[feed].Npm/npm/registry
//pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/registry/:_authToken=[token]
//pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/:_authToken=[token]

.npmrc 파일에 내 정보를 추가하고 'npm install'을 실행한 후 피드에 연결될 것으로 예상했습니다.

같은 컴퓨터에 있는 다른 repos와 동일한 .npmrc를 가지고 있는데도 연결이 되지 않는 문제가 있었습니다. 중입니다.vsts-npm-auth -config .npmrc방금 종료되었습니다. 캐시된 자격 증명에 만족했을 것입니다.

하지만, 그것이 가지고 있던 자격증은 나쁜 것처럼 보였습니다.을 강제로 이었습니다.vsts-npm-auth -config .npmrc -force

이 문제는 일반적으로 최근에 암호를 변경한 경우에 발생합니다.이 문제를 해결하기 위해 VS Code의 Powershell 터미널에서 이 명령을 실행했습니다(모든 터미널이 작동함).

vsts-npm-auth -config .npmrc

그렇게 함으로써 인증에 사용할 계정을 선택할 수 있는 GUI가 나타납니다.

이것이 도움이 되길 바랍니다!

Microsoft 업데이트를 통해 VSTS의 이름이 Azure DevOps로 변경되었을 때 많은 URL도 변경되었습니다.대부분의 오래된 것들은 여전히 리디렉션되지만, 당신은 당신의 컴퓨터에 불일치가 있는 것처럼 보입니다..npmrc위의 줄번째 줄의 URI를 다른 줄과 일치하도록 변경하여 다음과 같이 표시합니다.

registry=https://pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/registry

그러면 차단이 해제될 겁니다.

참고로 레지스트리와 자격 증명이 모두 동일한 파일에 있고 해당 파일이 소스 제어에 커밋되는 경우에도 자격 증명을 소스 제어에 저장합니다.여기서 가장 좋은 방법은 다음을 지키는 것입니다..npmrc연결할 레지스트리를 npm에 알려주는 첫 번째 줄만 있는 프로젝트 루트.다음 위치에 새 파일을 만듭니다.~/.npmrc(Windows를 사용하는 경우 gitbash를 사용하여 올바른 위치에 배치할 수 있습니다.) 다른 두 줄, 즉 자격 증명이 있는 두 줄을 추가하면 됩니다.이렇게 하면 컴퓨터에 대한 크레딧이 로컬로 유지되고 레지스트리 노트가 있는 파일을 안전하게 커밋할 수 있습니다.

되지 않은 ~/.npmrcjava.

방금 Azure DevOps 포털에서 이 Gotcha를 경험했습니다.

제 동료 중 한 명이 연결되지 않았습니다.를 삽입한 것으로 확인되었습니다.%40LocalMS Teams에서 공유할 때처럼 브라우저에서 피드 URL을 복사하면 피드 이름 뒤에 표시됩니다.

포털에 표시된 내용:

; begin auth token
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token

그의 포털이 보여준 것:

; begin auth token
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:email=npm requires email to be set but doesn't use the value
; end auth token

로 인해 의 저장소 ..npmrc

두합니다..npmrc 프로젝트 및젝트로프..npmrc

https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops&tabs=windows 이 솔루션은 저에게 적합합니다.명령을 실행하기 전에 설치해야 하는 다른 PowerShell Extension이 있습니다.vsts-npm-auth -config .npmrc.

제가 본 많은 답들 중에 저에게 맞는 답은 하나도 없었습니다.제게 도움이 된 것은 다음과 같습니다.

하지 않은 합니다.npm i -g vsts-npm-auth
합니다. Powershell은 다음과 같습니다.vsts-npm-auth -config .npmrc -T $HOME/.npmrc

그 두 명령이 제 사건을 해결했습니다.

저는 약간 다른 이유로 같은 오류 메시지를 받았고 그것에 대해 오랫동안 머리를 긁적였습니다.다른 사람에게 도움이 될까봐 여기에 글을 올리는 것뿐입니다.

vsts-npm-auth for me는 토큰/자격 증명이 포함된 새 .npmrc 파일을 W: 드라이브에 매핑된 이전 '홈' 공유의 .npmrc 파일로 출력합니다. (왜 그런지 여전히 잘 모르겠습니다.)

npm은 c:\users\[cisco]\.npmrc에서 해당 자격 증명/로그를 찾고 오래된 자격 증명을 찾고 있었습니다.

해결 방법은 w:\.npmrc에서 credit을 복사하여 붙여넣고 c:\users\[cisco]\.npmrc의 credit에 붙여넣는 것이었습니다.

내 문제는 달리기가vsts-npm-auth는 사용자 을 ..npmrc 파일에 했습니다.%USERPROFILE%\.npmrc 세그먼트가 된 경우 URL은 다음과 같습니다./registry는 습다니했가를 했습니다./registry내 사용자 .npmrc 파일로 세그먼트화하면 모든 것이 다시 정상입니다.

먼저 'vst-npm-auth' 패키지를 설치했는지 확인합니다.실행하지 않을 경우:

npm install -g vsts-npm-auth

다음 그럼실을 실행합니다.vsts-npm-auth -config .npmrc

Azure devops 계정을 인증/확인하라는 메시지가 표시됩니다.

다음 그럼실을 실행합니다.npm install

또한 여러 범위의 아티팩트 피드가 사용 중인 경우에도 이 문제가 발생했지만 여기에 나와 있는 답변 중 아무 것도 도움이 되지 않았습니다.

중입니다.vsts-npm-auth -config .npmrc성공적으로 작동했지만, npm 명령을 실행할 때 OP의 질문에 언급된 오류로 응답합니다.

프로젝트의 .npmrc 파일에 다음 행을 추가했습니다.

always-auth=true

이 작업 후, 우리는 npm 명령을 다시 실행하여 인증에 성공했습니다.

순서에 따르다

  1. npm install -g vsts-npm-auth
  2. vsts-npm-auth -config ./$filepath/.npmrc 경로를 .

문제가 여전히 존재하는 경우 를 사용합니다(자격 증명으로 다시 로그인하려는 팝업으로 리디렉션됨) 3. vsts-npm-auth -config ./$filepath/.npmrc -r -f -v normal

나는 먼저 사용자 폴더의 파일을 삭제해야 했습니다.

rm C:\Users\<YourUserName>\.npmrc

그 후에 나는 달릴 수 있었습니다.

vsts-npm-auth -config .npmrc

언급URL : https://stackoverflow.com/questions/55958659/unable-to-authenticate-when-trying-to-connect-to-azure-devops-artifacts-feed-t

반응형