Skip to main content
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
difyctl 可同时保持对多个 Dify 主机和账户的登录状态。每一对主机和账户构成一个上下文:其元数据保存在 配置目录 下的 hosts.yml 中,其 bearer token 则保存在操作系统的凭据存储中(并以受保护文件作为回退方案)。 每项任务对应一条命令: 分步登录的完整说明,详见 认证

登录

auth login 会运行 OAuth 2.0 设备流程:它打印一个一次性验证码和一个验证 URL,在浏览器中打开该 URL,然后等待你在浏览器中批准登录。CLI 全程不会接触你的密码。

标志

示例

登录到你的 Dify 主机:
从 SSH 会话登录,并在另一台设备上打开验证 URL:

输出

代码提示输出到 stderr,随后用一个加载动画等待浏览器端的批准:
登录成功后,确认信息输出到 stdout:
Workspace: 这一行是你的默认工作空间。 每次登录还会注册一个服务端会话,标签为 difyctl on <hostname>。运行 auth devices list 可查看你的所有会话。登录到一个已登录的主机,会刷新该上下文中存储的 token。

退出码

完整的退出码方案,详见 输出格式与退出码

查看当前身份

auth whoami 打印当前上下文所属的身份。它读取存储的上下文,不会联系服务器,因此回答的是「当前活跃的是哪个身份」,而不是「token 是否仍然有效」。即使会话已在服务端过期,它也会以 0 退出。

标志

示例

用于脚本:

输出

--json 输出是包含 idemailname 的单行内容:

退出码

列出已保存的上下文

auth list 显示所有已存储的主机和账户对,并标记出当前活跃的那一对。与 auth whoami 一样,它完全在本地运行,不会联系服务器。

标志

示例

输出

默认表格:
-o json

退出码

退出登录

auth logout 会在服务端撤销当前上下文的会话,然后从本机删除其 token 和 hosts.yml 条目。其他已保存的上下文不受影响。 本地清理始终会执行。如果服务端撤销失败,difyctl 会在 stderr 打印一条警告,并照常清除你的凭据。 token 存放在操作系统钥匙串中、而退出登录时又无法读取(已锁定,或没有桌面会话)时也是如此:跳过撤销,本地清理仍会执行。

标志

无。

示例

输出

退出码

切换当前主机

use host 改变后续命令针对哪个已存储的主机运行。它在本地生效:仅在你已有的登录之间重新指向当前上下文。要添加新主机,请改用 auth login --host

标志

示例

按域名切换到一个已存储的主机:

输出

切换成功后,会确认新的当前主机:
如果域名是你未曾登录过的,则会以用法错误失败,并列出已知的主机。

退出码

切换当前账户

use account 改变当前主机上活跃的是哪个已存储账户。与 use host 一样,它在本地生效,仅在你已有的登录之间切换。

标志

示例

在当前主机上切换到另一个账户:

输出

切换成功后,会确认新的当前账户:
如果某邮箱未存储在当前主机上,则会以用法错误失败,并列出已知的账户。如果某账户已存储的 token 不复存在(已撤销,或被 会话撤销 清除),则会以未登录错误失败,并提示你重新登录。

退出码

列出活跃会话

每次设备流程登录都会注册一个服务端会话,默认标签为 difyctl on <hostname>auth devices list 显示你账户下活跃的会话,便于你发现并 撤销 那些你不认识的会话。

标志

示例

列出你账户下活跃的会话:

输出

表格中用 * 标记你当前登录所使用的会话。如果某会话自登录以来一直未被使用,则 LAST USED 为空。 --json 打印单行 JSON:一个 data 数组,每个会话对应一个条目,外加分页字段 pagelimittotalhas_more。每个条目包含 idprefixclient_iddevice_labelcreated_atlast_used_atexpires_at

退出码

撤销会话

auth devices revoke 在服务端结束会话。目标的匹配顺序为:先按标签精确匹配,再按会话 ID 精确匹配,最后按不区分大小写的标签子串匹配。如果某个目标匹配到多个会话,则会失败并列出候选项,此时可传入精确的 ID 来消除歧义。 在终端中,difyctl 会先要求你确认;传入 -y/--yes 可跳过提示。在终端外(脚本或管道),它会直接撤销,不再提示。 如果你撤销的是当前登录所使用的会话,difyctl 还会清除该上下文的本地凭据:你在本机上将被退出登录。

参数

  • <target>:来自 auth devices list 的设备标签或会话 ID。除非传入 --all,否则为必填。

标志

示例

按标签撤销单个会话:
退出所有其他位置的登录,仅保留本机的会话:

输出

撤销成功后,difyctl 打印 ✓ Revoked <N> session(s)。如果某个命名目标没有匹配到任何会话,则会失败并提示 no session matches "<target>"。在没有其他会话时使用 --all,会打印 no sessions to revoke 并以 0 退出。

退出码

完整的退出码方案,详见 输出格式与退出码
Last modified on July 16, 2026