认证
KubeVision 使用基于 JWT 的认证方式。登录时会颁发一个访问令牌(TTL 15 分钟)和一个刷新令牌(TTL 7 天)。所有受保护的端点都需要在 Authorization 请求头中携带访问令牌。
登录
POST /api/v1/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "your-password"
}
响应 — 登录成功
{
"code": 0,
"message": "success",
"data": {
"accessToken": "<jwt>",
"refreshToken": "<jwt>",
"expiresIn": 900
},
"meta": { "requestId": "req_01HX" }
}
响应 — 需要双因素认证
当用户启用了双因素认证时,登录响应将包含一个会话令牌,而非最终的 JWT:
{
"code": 40102,
"message": "2FA required",
"data": {
"requires2fa": true,
"sessionToken": "<short-lived-token>"
},
"meta": { "requestId": "req_01HX" }
}
双因素认证
验证 TOTP 码
POST /api/v1/auth/2fa/verify
Content-Type: application/json
{
"sessionToken": "<short-lived-token>",
"code": "123456"
}
验证成功后,返回与普通登录相同的 accessToken / refreshToken 对。
设置双因素认证
POST /api/v1/auth/2fa/setup
Authorization: Bearer <access_token>
返回 otpauthUrl 和 recoveryCodes。使用任意 TOTP 应用(Google Authenticator、Authy、1Password)扫描二维码即可完成绑定。
{
"code": 0,
"data": {
"otpauthUrl": "otpauth://totp/KubeVision:admin?secret=BASE32SECRET",
"recoveryCodes": ["abc12-def34", "ghi56-jkl78"]
}
}