跳到主要內容

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.