版本:Unity 6 (6000.0)
语言:英语
解决网络问题
自定义全局缓存

作用域注册表身份验证

某些组织在其私有软件包注册表中托管自己的软件包,这些注册表需要身份验证才能访问。如果您是这些组织的员工或客户,则必须使用 npm 身份验证配置作用域注册表。要进行设置,获取 npm 身份验证令牌,然后将该令牌添加到您的用户配置文件

1) 获取 npm 身份验证令牌

创建和访问 npm 身份验证令牌的过程因每个注册表提供商而异。例如,JFrog 的 Artifactory 存储库管理器使用与 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

2) 配置身份验证信息

使用 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.eyJyZWFsX2dyb3VwcyI6WyJwYXNjYWxsIl0sIm5hbWUiOiJwYXNjYWxsIiwiZ3JvdXBzIjpbIn"

[npmAuth."https://api.bintray.example/npm/mycompany/myregistry"]
token = "aGFzY2FsbDo4ZWIwNTM5NzBjNTI3OTIwYjQ4MDVkYzY2YWEzNmQxOTkyNDYzZjky"
email = "[email protected]"
alwaysAuth = true

配置基本身份验证信息

这些步骤使用 Azure DevOps 作为示例,但该过程对于使用个人访问令牌 (PAT) 的任何平台来说都是类似的。

在开始之前,请安装 Node.js(如果尚未安装)。

  1. 获取您的 Azure DevOps 个人访问令牌 (PAT),并准备好用于后续步骤。如果您需要重新生成您的 PAT,请登录 Azure DevOps (https://dev.azure.com) 并转到 **用户设置** > **个人访问令牌**。有关使用 PAT 的信息,请参阅 Microsoft 文章,使用个人访问令牌

  2. 从命令行中,运行以下命令

    node -e "require('readline').createInterface({input:process.stdin,output:process.stdout,historySize:0}).question('Enter PAT> ',p => {b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit();})"
    
  3. Enter PAT 提示符下,键入 email:PAT,替换

    • email 为与您的 Azure DevOps 帐户关联的电子邮件以及在 .upmconfig.toml 文件中指定的电子邮件
    • PAT 为您之前步骤中获取的 PAT
  4. 该命令将返回一个 Base64 加密的字符串。复制该字符串并将其分配为 .upmconfig.toml 文件中 _auth 密钥的值。

使用基本身份验证的示例

[npmAuth."http://localhost:8081/myrepository/mylocation"]
_auth = "c19kaW5pcm9AaG90bWFpbC4jb206d3FzdzVhemU9Q=="
email = "[email protected]"
alwaysAuth = true

其他资源

解决网络问题
自定义全局缓存