dfx 身份
使用带有子命令和标志的 dfx identity
命令来管理用于执行命令并与 Internet Computer platform 或本地容器执行环境通信的身份。
创建多个用户身份使您能够测试基于用户的访问控制。
运行 dfx identity
命令的基本语法是:
dfx identity [subcommand] [flag]
根据您指定的 dfx identity
子命令,可能会应用或需要其他参数、选项和标志。
要查看特定 dfx identity
子命令的帮助信息,请指定子命令和 --help
标志。
例如,要查看 dfx identity new
的帮助信息,可以运行以下命令:
dfx identity new --help
有关说明使用 dfx identity
命令的参考信息和示例,请选择适当的命令。
命令 | 描述 |
---|---|
显示与当前身份关联的principal的文本表示。 |
|
显示与您当前身份principal关联的钱包的容器标识符。 |
|
|
显示此用法消息或给定子命令的帮助。 |
通过导入包含principal的密钥信息或安全证书的 PEM 文件来创建新身份。 |
|
列出现有身份。 |
|
创建一个新的身份。 |
|
删除现有身份。 |
|
重命名现有身份。 |
|
设置用于您当前身份principal的钱包容器标识符。 |
|
指定要使用的身份。 |
|
显示当前身份用户上下文的名称。 |
创建默认身份
第一次运行 dfx canister create
命令注册标识符时,您的公钥/私钥对凭据将用于创建 default
用户身份。
default
用户的凭据从 $HOME/.dfinity/identity/creds.pem
迁移到 $HOME/.config/dfx/identity/default/identity.pem
。
然后,您可以使用 dfx identity new
创建新的用户身份并将这些身份的凭据存储在 $HOME/.config/dfx/identity/<identity_name>/identity.pem
文件中。
例如,您可以通过运行以下命令创建一个名为 ic_admin
的身份:
dfx identity new ic_admin
此命令在 ~/.config/dfx/identity/ic_admin/identity.pem
文件中为 ic_admin
用户身份添加私钥。
dfx 身份获取principal
使用 dfx identity get-principal
命令显示与当前用户身份上下文关联的principal的文本表示。
如果您尚未创建任何用户身份,则可以使用此命令显示 default
用户的principal。
principal的文本表示对于建立和测试基于角色的授权方案很有用。
dfx 身份获取钱包
使用 dfx identity get-wallet
命令显示与您当前身份principal关联的钱包的容器标识符。
请注意,您必须连接到 Internet Computer platform 或本地容器执行环境才能运行此命令。
此外,您必须在项目目录中才能运行该命令。
例如,如果您的项目名称是 hello_world
,那么您当前的工作目录必须是 hello_world
顶级项目目录或其子目录之一才能运行 dfx identity get-wallet
命令。
dfx 身份列表
使用 dfx identity list
命令显示可用的用户身份列表。
运行此命令时,列表会显示一个星号 (*) 以指示当前活动的用户上下文。
您应该注意,身份是全局的。 它们并不局限于特定的项目环境。
因此,您可以在任何项目中使用 dfx identity list
命令列出的任何身份。
dfx 身份新
使用 dfx identity new
命令添加新的用户身份。
您应该注意,您添加的身份是全局的。 它们并不局限于特定的项目环境。
因此,您可以在任何项目中使用通过 dfx identity new
命令添加的任何身份。
例子
然后,您可以使用 dfx identity new
创建新的用户身份并将这些身份的凭据存储在 $HOME/.config/dfx/identity/<identity_name>/identity.pem
文件中。
例如,您可以通过运行以下命令创建一个名为 ic_admin
的身份:
dfx identity new ic_admin
此命令在 ~/.config/dfx/identity/ic_admin/identity.pem
文件中为 ic_admin
用户身份添加私钥。
添加新身份的私钥后,该命令会显示已创建身份的确认信息:
Creating identity: "ic_admin". Created identity: "ic_admin".
dfx 身份删除
使用 dfx identity remove
命令删除现有用户身份。
您应该注意,您添加的身份是全局的。 它们并不局限于特定的项目环境。
因此,您使用 dfx identity remove
命令删除的任何身份将不再在任何项目中可用。
例子
您可以使用 dfx identity remove
命令删除任何以前创建的身份,包括 default
用户身份。
例如,如果您添加了命名用户身份并希望删除 default
用户身份,则可以运行以下命令:
dfx identity remove default
该命令显示确认身份已被删除:
Removing identity "default". Removed identity "default".
虽然如果您创建了其他身份来替换它,您可以删除`default` 身份,但您必须始终至少有一个身份可用。
如果您尝试删除最后剩余的用户上下文,dfx identity remove
命令会显示类似于以下内容的错误:
Identity error: Cannot delete the default identity
dfx 身份重命名
dfx identity set-wallet
使用 dfx identity set-wallet
命令指定用于您的身份的钱包容器标识符。
标志
您可以在 dfx identity set-wallet
命令中使用以下可选标志。
标志 | 说明 |
---|---|
|
跳过验证您指定的容器是有效的钱包容器。 仅当您连接到本地运行的 Internet Computer 时,此选项才有用。 |
|
显示帮助信息。 |
|
显示版本信息。 |
示例
如果您使用多个principal作为您的身份,您可能有权访问多个钱包容器标识符。
您可以使用 dfx identity set-wallet
命令指定用于给定身份的钱包容器标识符。
例如,您可以将钱包容器标识符存储在环境变量中,然后调用 dfx identity set-wallet
命令通过运行以下命令将该钱包容器用于其他操作:
export WALLET_CANISTER_ID=$(dfx identity get-wallet) dfx identity --network=https://192.168.74.4 set-wallet --canister-name ${WALLET_CANISTER_ID}
dfx 身份使用
使用 dfx identity use
命令指定要激活的用户身份。
您应该注意,您可以使用的身份是全局的。 它们并不局限于特定的项目环境。
因此,您可以使用之前在任何项目中创建的任何身份。