dart pub token
dart pub token
子命令用于管理令牌存储。在发布包和检索依赖项时,dart pub
命令使用令牌对第三方服务器进行身份验证。
它将这些令牌存储在用户范围的配置目录中。dart pub token
子命令有三个子命令:add
、list
和remove
。
dart pub
命令认为术语 credential、token、secret 和 secret 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.
为所有会话添加凭据
#要在任何和所有终端会话以及脚本中使用同一令牌,请将令牌存储在环境变量中。
将您的令牌存储在环境变量中。
请务必将令牌从 shell 历史记录中隐藏起来。要了解一种实现方法,请参阅 Medium 上的这篇帖子。
要使您添加的任何环境变量生效,请重启所有打开的控制台。
要使用环境变量作为令牌,请使用
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 Actions 或 GitLab 的文档作为示例。
返回凭据列表
#要查看所有活动凭据的列表,请使用 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.