Skip to main content

本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。

续期登录#

登录有效 14 天(自部署的服务器可通过 OAUTH_TTL_DAYS 调整),期间使用 difyctl 也不会延长有效期。过期后,所有用到这次登录的命令都会报 auth_expired 错误(退出码 4),直到你重新登录。登录何时过期,可在 会话列表 的 expires_at 中查看。

Info

在自部署的服务器上,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。

Note

切换在以下两种情况下不生效:

  • 重新登录后,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)。
  • 登录时凭据存储无法使用。
Note

不要把 tokens.yml 打包进容器镜像、放进会共享给他人的备份,或提交到版本控制系统。

配置目录的位置如下:

  • macOS:~/.config/difyctl
  • Linux:$XDG_CONFIG_HOME/difyctl,未设置 XDG_CONFIG_HOME 时为 ~/.config/difyctl
  • Windows:%APPDATA%\difyctl

要改用其他目录,设置 DIFY_CONFIG_DIR。

登出#

Tip

要切换账户,直接运行 login 即可,它会先让你退出当前账户。

不再使用某台机器时,运行 logout:

logout 会结束你在服务器上的会话,并删除本机保存的令牌和登录记录。如果连不上服务器,logout 仍会清除本机的数据,但服务器上的会话依然有效,直到它到期,或者你 手动结束这个会话。

查看和结束会话#

要查看你在哪些机器上登录了,列出所有会话:

每个会话都会显示 id、机器的主机名 device_label 和过期时间 expires_at。

要结束另一台机器上的会话(例如已经不在你手上的机器),按 ID 删除它。根据 device_label 选择要删除的会话,以免误删你正在使用的这台机器上的会话。

要结束当前正在使用的会话,改为运行 logout:按 ID 删除会把已保存的登录信息留在本机,下一条命令就会报 auth_expired 错误。