本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
续期登录#
登录有效 14 天(自部署的服务器可通过 OAUTH_TTL_DAYS 调整),期间使用 difyctl 也不会延长有效期。过期后,所有用到这次登录的命令都会报 auth_expired 错误(退出码 4),直到你重新登录。登录何时过期,可在 会话列表 的 expires_at 中查看。
在自部署的服务器上,ACCESS_TOKEN_EXPIRE_MINUTES 和 REFRESH_TOKEN_EXPIRE_DAYS 不影响 difyctl 登录的有效期。
要续期,再次运行 login。它会先退出当前登录,再开始新的登录。如果新的登录失败,你会一直处于退出状态,直到登录成功为止。
使用多个服务器或账户#
每个 配置目录 只保存一份登录信息,新的登录会替换掉它。要切换服务器,运行 login 并用 --server 指定新服务器。要切换账户,运行 login,然后在浏览器中用另一个账户登录 Dify 并批准。
要同时登录多个服务器或账户,用 DIFY_CONFIG_DIR 为每个登录分配单独的目录,并在用到该登录的每条命令中都设置它:
在一台机器上,如果用同一账户登录同一台服务器,两个目录无法各自保持登录:在一个目录中登录后,另一个目录的会话随即结束。
切换工作空间 Cloud #
要改用其他工作空间,先在工作空间列表中找到它的 id,再切换过去:
切换只对当前这次 difyctl 登录生效,不会改变浏览器中 Dify 所在的工作空间。要查看 difyctl 当前所在的工作空间,运行 difyctl describe workspace。
切换在以下两种情况下不生效:
- 重新登录后,
difyctl会回到你批准登录时所在的工作空间。 - 如果设置了
DIFY_WORKSPACE_ID,difyctl会在该工作空间中操作,use workspace也会失败。取消设置这个变量后才能切换。
要在其他工作空间中单独运行一条命令而不切换,加上 --workspace-id:
带 --app-id 的命令会在你所有的工作空间中查找应用,因此不需要 --workspace-id。check console_app dsl 和 import console_app dsl 除外:应用在其他工作空间时,这两条命令也要加上该工作空间的 --workspace-id。
令牌的存储位置#
difyctl 把令牌保存在操作系统的凭据存储中,服务名为 difyctl:macOS 上是 Keychain,Windows 上是 Credential Manager,Linux 上是 Secret Service。
以下情况下,它会改为把令牌写入配置目录中的 tokens.yml:
- 你使用
--no-keyring登录。 - 你在没有桌面会话总线的 Linux 上登录(未设置
DBUS_SESSION_BUS_ADDRESS)。 - 登录时凭据存储无法使用。
不要把 tokens.yml 打包进容器镜像、放进会共享给他人的备份,或提交到版本控制系统。
配置目录的位置如下:
- macOS:
~/.config/difyctl - Linux:
$XDG_CONFIG_HOME/difyctl,未设置XDG_CONFIG_HOME时为~/.config/difyctl - Windows:
%APPDATA%\difyctl
要改用其他目录,设置 DIFY_CONFIG_DIR。
登出#
要切换账户,直接运行 login 即可,它会先让你退出当前账户。
不再使用某台机器时,运行 logout:
logout 会结束你在服务器上的会话,并删除本机保存的令牌和登录记录。如果连不上服务器,logout 仍会清除本机的数据,但服务器上的会话依然有效,直到它到期,或者你 手动结束这个会话。
查看和结束会话#
要查看你在哪些机器上登录了,列出所有会话:
每个会话都会显示 id、机器的主机名 device_label 和过期时间 expires_at。
要结束另一台机器上的会话(例如已经不在你手上的机器),按 ID 删除它。根据 device_label 选择要删除的会话,以免误删你正在使用的这台机器上的会话。
要结束当前正在使用的会话,改为运行 logout:按 ID 删除会把已保存的登录信息留在本机,下一条命令就会报 auth_expired 错误。