令牌管理
令牌是 CLI 客户端连接服务器时使用的认证凭据。每个令牌绑定到一个用户,并可选绑定到一个设备。
CLI 命令
bash
# 为用户 ID 1 生成令牌
unns token gen 1
# 带设备名称生成
unns token gen 1 macbook-pro
# 列出所有令牌
unns token list
# 列出特定用户的令牌
unns token list 1
# 撤销令牌
unns token revoke 3令牌属性
| 字段 | 说明 |
|---|---|
hash | SHA-256 哈希(存储值,永不存储明文) |
user_id | 所属用户 |
device_name | 可选的设备标识符 |
enabled | 活跃或已撤销 |
created_at | 创建时间戳 |
last_used | 最后一次成功认证时间 |
令牌工作原理
- 管理员生成令牌 → 原始令牌只显示一次
- 将令牌提供给用户
- 用户运行
unne setup并输入令牌 - CLI 在握手过程中发送令牌
- 服务器对令牌进行哈希并在数据库中查找对应哈希
- 令牌继承其父用户的所有限制
令牌 = 设备
当用户设置了 max_devices 时,每个令牌算作一个设备。如果用户设置了 max_devices=2,则最多可以有 2 个活跃令牌同时连接。
安全性
- 令牌仅以 SHA-256 哈希形式存储
- 原始令牌在生成时显示一次,之后永不存储
- 撤销令牌会立即断开客户端连接
- 令牌可通过 CLI 或管理面板进行管理