跳到主要内容

dart pub token

dart pub token 子命令用于管理令牌存储。在发布包和检索依赖项时,dart pub 命令使用令牌对第三方服务器进行身份验证。

它将这些令牌存储在用户范围的配置目录中。dart pub token 子命令有三个子命令:addlistremove

dart pub 命令认为术语 credentialtokensecretsecret token 可以互换使用。

凭据的使用场景

#

考虑这样一种情况:您的依赖项托管在私有仓库上。当您使用 dart pub get 命令时,它可能会返回提示要求提供凭据

dart pub get
Resolving dependencies... 
https://some-package-repo.com/my-org/my-repo package repository requested authentication!
You can provide credentials using:
    dart pub token add https://some-package-repo.com/my-org/my-repo

有些(但不是所有)服务器还会返回一条消息,其中包含如何获取令牌的说明。

添加新凭据

#

要创建新凭据,请使用 dart pub token add 命令。

为当前会话添加凭据

#

在提示符下,在命令行 (stdin) 上输入凭据。

dart pub token add https://some-package-repo.com/my-org/my-repo
Enter secret token: <Type token on stdin>
 Requests to "https://some-package-repo.com/my-org/my-repo" will now be 
 authenticated using the secret token.

为所有会话添加凭据

#

要在任何和所有终端会话以及脚本中使用同一令牌,请将令牌存储在环境变量中。

  1. 将您的令牌存储在环境变量中。

    请务必将令牌从 shell 历史记录中隐藏起来。要了解一种实现方法,请参阅 Medium 上的这篇帖子

  2. 要使您添加的任何环境变量生效,请重启所有打开的控制台。

  3. 要使用环境变量作为令牌,请使用 dart pub token add 命令

    dart pub token add <hosted-url> --env-var <TOKEN_VAR>

    此命令读取存储在 $TOKEN_VAR 中的令牌,然后使用它对托管所需包的 hosted-url 进行身份验证。它应该在终端中打印以下响应。

    dart pub token add https://other-package-repo.com/ --env-var TOKEN_VAR
    Requests to "https://other-package-repo.com/" will now be authenticated using the secret token stored in the environment variable "TOKEN_VAR".

大多数 CI 环境可以将令牌注入到环境变量中。要了解如何操作,请查阅 GitHub ActionsGitLab 的文档作为示例。

返回凭据列表

#

要查看所有活动凭据的列表,请使用 dart pub token list 命令

dart pub token list
You have secret tokens for 2 package repositories:
https://some-package-repo.com/my-org/my-repo
https://other-package-repo.com/

移除一个或多个凭据

#

要移除单个令牌,请使用 dart pub token remove 命令

dart pub token remove https://other-package-repo.com
Removed secret token for package repository: https://other-package-repo.com

要移除所有令牌,请使用前面的命令并加上 remove --all 选项

dart pub token remove --all
pub-tokens.json is deleted.
Removed 1 secret tokens.