云端登录
截至 v6.3.0(尚未发布)
本页描述的是即将在 UltiTools-API v6.3.0(当前在 alpha 分支)中生效的云端登录生命周期。三条命令和它们的控制台输出与此前版本相同。
/ulticloud login、/ulticloud logout、/ulticloud status 用于将服务器接入 UltiCloud,从而通过 UltiPanel 面板进行远程管理。v6.3.0 改变的是框架内部如何追踪一次登录,不改变操作员看到的东西。
一次登录就是一个会话
一次成功的登录会创建一个会话。这个会话把凭证、与 UltiPanel 的 WebSocket 连接、重连计划和令牌刷新计划整体持有在一起。
一次登出会用一个全新的、空的会话替换掉当前会话。旧会话启动的一切,在被替换的那一刻起就不再重要:一次正在进行的重连尝试,一次已经在途的凭证刷新,一次还在等待浏览器那一步的魔法链接轮询。它们都不能把结果写回一个已经被登出撤换掉的会话,无论它们在登出命令到达服务器之前已经运行了多久。
这也是登出必须无条件执行的原因。即便保存的凭证已经过期,登出也会关闭连接、停掉重连计划、停掉刷新计划。凭证过期恰恰是操作员最需要登出真正生效的场景,此前的实现会在凭证已经失效之后仍然保留连接。
操作员看到的东西
三条命令和它们的控制台输出与此前版本相同:
| 命令 | 作用 |
|---|---|
/ulticloud login | 请求一条魔法链接,打印到控制台,等待浏览器那一步完成 |
/ulticloud logout | 关闭连接并清除保存的凭证 |
/ulticloud status | 报告服务器当前是否已连接,以及连接到哪个账号 |
在更早版本上运行过这些命令的操作员,看到的消息不变。会话内部的变化在控制台上没有任何可见痕迹。
不受影响的部分
实现这套生命周期的 CloudAuthManager 类是框架内部类(@ApiStatus.Internal),此前也从未属于模块开发者需要对接的公开 API 面。本次发布不要求任何模块做出改动。