目錄

dart pub token

dart pub token 子命令管理一個 Token 儲存區。當發佈套件和擷取依賴時,dart pub 命令會使用 Token 向第三方伺服器進行身份驗證。

它將這些 Token 儲存在使用者範圍的組態目錄中。dart pub token 子命令有三個子命令:addlistremove

dart pub 命令認為憑證Token密碼秘密 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

某些(但並非全部)伺服器也會傳回一則訊息,其中包含有關如何取得 Token 的說明。

新增憑證

#

要建立新的憑證,請使用 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.

為所有工作階段新增憑證

#

若要將相同的 Token 用於任何和所有終端機工作階段以及指令碼中,請將 Token 儲存在環境變數中。

  1. 將您的 Token 儲存在環境變數中。

    請確保將 Token 從 Shell 歷史記錄中隱藏。若要探索執行此操作的一種方法,請參閱這篇 Medium 上的文章

  2. 若要啟用您新增的任何環境變數,請重新啟動任何開啟的主控台。

  3. 若要使用環境變數作為 Token,請使用 dart pub token add 命令

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

    此命令會讀取儲存在 $TOKEN_VAR 中的 Token,然後使用它向託管所需套件的 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 環境可以將 Token 注入到環境變數中。若要了解如何操作,請參閱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/

移除一個或多個憑證

#

若要移除單個 Token,請使用 dart pub token remove 命令

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

若要移除所有 Token,請使用上述命令,並加上 remove --all 選項

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