kikoeru 中文文档 下载 App

JWT 用户鉴权开关:局域网裸跑 vs 公网必须开

两种模式

Kikoeru 后端的用户认证是可选的:

模式行为适用场景
关闭鉴权任何人知道地址就能访问全部功能纯局域网、只有自己用
开启 JWT 鉴权需要先登录获取 Token,每次请求带 Token公网暴露、可能被多人访问

默认行为

不同部署形态的默认值可能不同——Docker 镜像通常默认关闭 JWT(因为自托管场景大多数是内网裸跑)。可以在 config/config.json 里改。

怎么开启

方式一:Web 界面改配置

进入"设置 → 配置",找到 JWT 相关的开关:

方式二:直接改 config.json

找到 config/config.json(路径取决于部署方式):

{
  "jwt": {
    "enable": true,
    "secret": "一个随机生成的长字符串",
    "expiresIn": "7d",
    "users": [
      { "username": "admin", "password": "你的密码" }
    ]
  }
}

保存后重启服务。

JWT 鉴权的工作流程

  1. 客户端第一次连接 → 收到 401 未授权
  2. 客户端弹出登录页面(用户名 + 密码)
  3. 登录成功 → 后端签发 JWT Token(有效期默认 7 天)
  4. 后续每次请求带上 Token → 后端验证 → 放行
  5. Token 过期 → 重新登录

局域网场景要不要开

可以不开——但有个前提:你的路由器的 Wi-Fi 密码很安全。

如果:

那还是开一下 JWT 保险点。

公网场景必须开

如果你把 Kikoeru 映射到了公网 IP/端口,不开 JWT 等于把你的整个音声库对全网开放:

最低限度也得用 Cloudflare Tunnel 或反代 + Basic Auth。

多用户场景

目前后端是单用户架构(见 多账户切换)。即使开了 JWT,也只有一组用户名密码(或你可以手动在 users 数组里加多个)。真正的多用户隔离(每个人独立的收藏、独立的权限)还没实现。