本文档由 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。
登出
不再使用某台机器时,运行logout:
logout 会结束你在服务器上的会话,并删除本机保存的令牌和登录记录。如果连不上服务器,logout 仍会清除本机的数据,但服务器上的会话依然有效,直到它到期,或者你 手动结束这个会话。
查看和结束会话
要查看你在哪些机器上登录了,列出所有会话:id、机器的主机名 device_label 和过期时间 expires_at。
要结束另一台机器上的会话(例如已经不在你手上的机器),按 ID 删除它。根据 device_label 选择要删除的会话,以免误删你正在使用的这台机器上的会话。
logout:按 ID 删除会把已保存的登录信息留在本机,下一条命令就会报 auth_expired 错误。