HTTP API
这里简单介绍 PiKVM API,由于软件由多个微服务组成,因此由 Nginx 提供一个通用的 API 入口点 /api/
。
身份验证
所有应用程序接口都需要鉴权,每个请求都要逐一地进行身份验证,或者获取一个令牌并将其作为 Cookie 与每个请求一起传递。启用 2FA 后,需要将一次性代码添加到密码中,且不留空格。可以使用任何 TOTP 库(例如 Python)生成代码:
在 2FA 验证码有效期即将结束时,由于请求延迟验证码可能失效,处理此问题带来的错误 403 的方法可以是以秒为单位重复请求。更好的方法是将此方法与检查剩余有效期相结合,如果还有一秒左右的时间,则推迟请求。通过这种方法,你可以知道有效期还剩多少时间:
单次请求授权
- 使用 X-headers 需要发送:
X-KVMD-User
X-KVMD-Passwd
- 使用 HTTP Basic Auth 与标准相反,此方法不使用标头,此实现中的 HTTP Basic Auth 仅用于与其他系统兼容。
基于会话的 cookie 身份验证
- 获取 cookie :
POST /api/auth/login
身份验证成功会返回200,身份验证失败会返回403。
-
GET /api/auth/check
此方法可以验证 cookie 状态,同样的,验证成功会返回200,验证失败会返回403。 -
POST /api/auth/logout
此方法可以销毁 cookie。
系统功能
获取软件信息
GET /api/info
该方法返回 PiKVM 设备的所有信息。
参数:fields=...(可选)- 仅返回指定的类别,例如 fields=system,hw
。默认情况下,将显示所有类别。
点击展开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
获取软件日志
GET /api/log
该方法以纯文本形式显示所有 KVMD 服务的日志。
参数:follow=1 (可选)- 将请求转为长时间轮询模式,实时跟踪日志信息;seek=N (可选)- 以秒为单位运行指定时间的日志,例如将显示过去一小时的日志。