Version: 2021.3
언어: 한국어
네트워크 문제 해결
공유 캐시 위치 커스터마이즈

범위 지정 레지스트리 인증

일부 조직은 액세스를 위해 인증이 필요한 프라이빗 패키지 레지스트리에 자체 패키지를 호스팅합니다. 해당 조직 중 하나의 직원 또는 고객인 경우 npm 인증을 사용하여 범위 지정 레지스트리를 설정해야 합니다. 이렇게 설정하려면 npm 인증 토큰을 가져온 후 사용자 설정 파일에 해당 토큰을 추가하십시오.

npm 인증 토큰 페치

npm 인증 토큰을 생성하고 액세스하는 프로세스는 각 레지스트리 공급자마다 다릅니다. 예를 들어 JFrog의 BintrayArtifactory 저장소 관리자는 다른 절차를 사용하여 npm에서 인증 토큰을 생성합니다. 이는 일반적인 절차의 한 예이며, 범위 지정 레지스트리의 특정 패키지 레지스트리 공급자가 권장하는 프로세스를 따라야 합니다.

npm에서 인증 토큰을 페치하려면 다음 단계를 따르십시오.

  1. 컴퓨터에 로컬로 npm을 설치합니다.

  2. 터미널에서 다음 커맨드를 입력하여 레지스트리에 로그인합니다.

    $ npm login --registry <registry url>

  3. 생성된 .npmrc 파일을 찾아 엽니다.

  4. _authToken 또는 _auth 항목을 찾은 후 해당 값을 복사합니다(아래 예 참조).

    레지스트리에 따라 토큰 문자열은 GUID, 토큰, 또는 독자적 포맷의 문자열일 수 있습니다.

.npmrc 파일의 예

다음은 _authToken 속성이 들어 있는 .npmrc 파일의 예입니다.

registry=https://example.com:1234/mylocation/
//example.com:1234/mylocation/:_authToken=<AUTH TOKEN>

다음은 _auth 속성이 들어 있는 .npmrc 파일의 예입니다.

registry=https://example.com:1234/mylocation
_auth=<AUTH TOKEN>
email=<EMAIL>
always-auth=true

인증 정보 설정

npmAuth 설정 스키마를 사용하여 인증이 필요한 각 범위 지정 레지스트리에 대한 토큰 정보를 .upmconfig.toml 사용자 설정 파일에 저장합니다. 이 정보를 설정 파일에 저장하면 패키지 관리자는 파일의 각 레지스트리에 대한 모든 요청에 대해 인증 정보를 제공합니다.

사용자 설정 파일에 인증 정보를 추가하려면 다음 지침을 따르십시오.

  1. .upmconfig.toml 사용자 설정 파일을 찾습니다. 이 파일이 아직 없으면 빈 텍스트 파일을 생성합니다.

  2. Bearer(토큰 기반) 또는 Basic(Base64 암호화) 인증 메커니즘을 사용하는지 여부에 따라 스키마를 사용하여 인증 정보의 포맷을 지정합니다.

[npmAuth."<REGISTRY URL>"]
<TOKEN-PROPERTY> = "<TOKEN-VALUE>"
email = "<EMAIL>"
alwaysAuth = <BOOLEAN>

이 표에는 설정 파일 값을 지정하는 방법이 설명되어 있습니다.

항목: 설명:
[npmAuth."<REGISTRY URL>"] 필수. 레지스트리용 URL. 예를 들어 [npmAuth."https://example.com:8081/mylocation"]일 수 있습니다.
<TOKEN-PROPERTY> = "<TOKEN-VALUE>" 필수. npm 레지스트리에서 생성된 인증 토큰. GUID, 토큰, 또는 독자적 포맷의 문자열일 수 있습니다. 예를 들어 token = "<AUTH TOKEN>"(Bearer) 또는 _auth = "<BASE64 TOKEN>"(Basic)일 수 있습니다.
email 선택 사항. 레지스트리의 사용자 이메일과 일치하는 사용자의 이메일 주소.
alwaysAuth 선택 사항. 패키지 메타데이터와 타르볼이 동일한 서버에 없는 경우 true로 설정합니다. 일반적으로 생성된 .npmrc 파일에서 값을 복사할 수 있습니다.

Bearer 인증을 사용하는 예제

[npmAuth."http://localhost:8081/myrepository/mylocation"]
token = "NpmToken.2348c7ea-6f86-3dbe-86b6-f257e86569a8"
alwaysAuth = true

[npmAuth."http://localhost:4873"]
token = "eaJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWFsX2dyb3VwcyI6WyJwYXNjYWxsIl0sIm5hbWUiOiJwYXNjYWxsIiwiZ3JvdXBzIjpbInBhc2NhbGwiLCIkYWxsIiwiJGF1dGhlbnRpY2F0ZWQiLCJAYWxsIiwiQGF1dGhlbnRpY2F0ZWQiLCJhbGwiLCJwYXNjYWxsIl0sImlhdCI6MTU3NDY4ODQ5MCwibmJmIjoxNTc0Njg4NDkxLCJleHAiOjE1Nzk4NzI0OTB9.qF8_0ue1ppraWLkReT06AMG6R7RZuDiV2XinxMkdSo0"

[npmAuth."https://api.bintray.example/npm/mycompany/myregistry"]
token = "aGFzY2FsbDo4ZWIwNTM5NzBjNTI3OTIwYjQ4MDVkYzY2YWEzNmQxOTkyNDYzZjky"
email = "username@example.com"
alwaysAuth = true
네트워크 문제 해결
공유 캐시 위치 커스터마이즈