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 命令的参考信息和示例,请选择适当的命令。

命令 描述

get-principal

显示与当前身份关联的principal的文本表示。

get-wallet

显示与您当前身份principal关联的钱包的容器标识符。

help

显示此用法消息或给定子命令的帮助。

import

通过导入包含principal的密钥信息或安全证书的 PEM 文件来创建新身份。

list

列出现有身份。

new

创建一个新的身份。

remove

删除现有身份。

rename

重命名现有身份。

设置-钱包

设置用于您当前身份principal的钱包容器标识符。

use

指定要使用的身份。

whoami

显示当前身份用户上下文的名称。

创建默认身份

第一次运行 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 identity get-principal [flag]

标志

您可以在 dfx identity get-principal 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

示例

如果要显示与特定用户身份上下文关联的principal的文本表示,可以运行类似于以下的命令:

dfx identity use ic_admin
dfx identity get-principal

在此示例中,第一个命令将用户上下文设置为使用 ic_admin 身份。 然后第二个命令返回与 ic_admin 身份关联的principal。

dfx 身份获取钱包

使用 dfx identity get-wallet 命令显示与您当前身份principal关联的钱包的容器标识符。

请注意,您必须连接到 Internet Computer platform 或本地容器执行环境才能运行此命令。 此外,您必须在项目目录中才能运行该命令。 例如,如果您的项目名称是 hello_world,那么您当前的工作目录必须是 hello_world 顶级项目目录或其子目录之一才能运行 dfx identity get-wallet 命令。

基本用法

dfx identity get-wallet [flag]

标志

您可以在 dfx identity get-wallet 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

示例

如果要显示与您的身份关联的钱包容器的容器标识符,可以运行以下命令:

dfx identity get-wallet

要在特定测试网上显示与您的身份相关联的钱包容器的容器标识符,您可以运行类似于以下内容的命令:

dfx identity --network=https://192.168.74.4 get-wallet

dfx 身份导入

使用 dfx identity import 命令通过从 PEM 文件中导入用户的密钥信息或安全证书来创建用户身份。

基本用法

dfx identity import [flag] identity-name pem_file-name

标志

您可以在 dfx identity import 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

例子

您可以使用 dfx identity import 命令导入包含用于身份的安全证书的 PEM 文件。 例如,您可以运行以下命令导入 generated-id.pem 文件以创建用户身份 alice:

dfx identity import alice generated-id.pem

该命令将 generated-id.pem 文件添加到 ~/.config/dfx/identity/alice 目录。

dfx 身份列表

使用 dfx identity list 命令显示可用的用户身份列表。 运行此命令时,列表会显示一个星号 (*) 以指示当前活动的用户上下文。 您应该注意,身份是全局的。 它们并不局限于特定的项目环境。 因此,您可以在任何项目中使用 dfx identity list 命令列出的任何身份。

基本用法

dfx identity list [flag]

标志

您可以在 dfx identity list 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

例子

您可以使用 dfx identity list 命令列出您当前可用的所有身份,并确定哪个身份正在用作当前活动的用户上下文以运行 dfx 命令。 例如,您可以运行以下命令来列出可用的身份:

dfx identity list

此命令显示找到的身份列表,类似于以下内容:

alice_auth
anonymous
bob_standard *
default
ic_admin

在此示例中,bob_standard 身份是当前活动的用户上下文。 运行此命令以确定活动用户后,您知道您运行的任何其他 dfx 命令都是使用与 bob_standard 身份关联的principal执行的。

dfx 身份新

使用 dfx identity new 命令添加新的用户身份。 您应该注意,您添加的身份是全局的。 它们并不局限于特定的项目环境。 因此,您可以在任何项目中使用通过 dfx identity new 命令添加的任何身份。

基本用法

dfx identity new [flag] _identity-name_

标志

您可以在 dfx identity new 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

参数

您必须为 dfx identity new 命令指定以下参数。

参数 描述

<identity_name>

指定要创建的身份的名称。 该参数是必需的。

例子

然后,您可以使用 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 [flag] _identity-name_

标志

您可以在 dfx identity remove 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

参数

您必须为 dfx identity remove 命令指定以下参数。

参数 描述

<identity_name>

指定要删除的身份的名称。 该参数是必需的。

例子

您可以使用 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 rename 命令重命名现有用户身份。 您应该注意,您添加的身份是全局的。 它们并不局限于特定的项目环境。 因此,您使用 dfx identity rename 命令重命名的任何身份都可以在任何项目中使用新名称。

基本用法

dfx identity rename [flag] _from_identity-name_ _to_identity-name_

标志

您可以在 dfx identity rename 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

参数

您必须为 dfx identity rename 命令指定以下参数。

参数 描述

<from_identity_name>

指定要重命名的身份的当前名称。 该参数是必需的。

<to_identity_name>

指定要重命名的身份的新名称。 该参数是必需的。

示例

您可以重命名 default 用户或您之前使用 dfx identity rename 命令创建的任何身份。 例如,如果您想重命名您之前创建的 test_admin 身份,您可以通过运行指定要更改的当前身份名称 from 和要更改为 to 的新名称 类似于以下的命令:

dfx identity rename test_admin devops

dfx identity set-wallet

使用 dfx identity set-wallet 命令指定用于您的身份的钱包容器标识符。

基本用法

dfx identity set-wallet [flag] [--canister-name canister-name]

标志

您可以在 dfx identity set-wallet 命令中使用以下可选标志。

标志 说明

force

跳过验证您指定的容器是有效的钱包容器。 仅当您连接到本地运行的 Internet Computer 时,此选项才有用。

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

示例

如果您使用多个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 命令指定要激活的用户身份。 您应该注意,您可以使用的身份是全局的。 它们并不局限于特定的项目环境。 因此,您可以使用之前在任何项目中创建的任何身份。

基本用法

dfx identity use [flag] _identity-name_

标志

您可以在 dfx identity use 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

参数

您必须为 dfx identity use 命令指定以下参数。

参数 描述

<identity_name>

指定要为后续命令激活的身份的名称。 该参数是必需的。

例子

如果要使用相同的用户身份上下文运行多个命令,可以运行类似于以下的命令:

dfx identity use ops

运行此命令后,后续命令将使用与 ops 用户关联的凭据和访问控制。

dfx 身份 whoami

使用 dfx identity whoami 命令显示当前活动的用户身份上下文的名称。

基本用法

dfx identity whoami [flag]

标志

您可以在 dfx identity whoami 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

示例

如果要显示当前活动用户身份的名称,可以运行以下命令:

dfx identity whoami

该命令显示用户身份的名称。 例如,您之前运行过命令 dfx identity use bob_standard,该命令将显示:

bob_standard