docs(auth): 修正 JWT 默认密钥注释——桌面客户端本地 Flask 退役后服务端可独立轮换

原注释称"客户端内置同一密钥,服务端不能换"已过时(本地 Flask 与 /api/auth/sync
验签链路已随服务端化退役),会误导运维不敢轮换;2026-09-13 生产已轮换为
application-server.yml 独立密钥并验证。
This commit is contained in:
2026-09-13 21:44:20 +08:00
parent 1066625078
commit 0c98c5bc15
@@ -35,11 +35,12 @@ public class JwtService {
String configured = props.getJwtSecret();
byte[] keyBytes;
if (configured == null || configured.isBlank()) {
// 已分发到用户机器的桌面客户端内置同一个默认密钥,服务端必须保持一致,
// 不能随机生成,否则所有旧客户端 /api/auth/sync 验签失败导致无法登录。
// 兜底:未配置时使用内置默认密钥(公开值,等同无防护,任何人可伪造 token)。
// 桌面客户端本地 Flask 已退役,服务端可独立轮换密钥;若恢复客户端侧验签,
// 需与客户端同步下发密钥后才能轮换。
keyBytes = INSECURE_DEFAULT_SECRET.getBytes(StandardCharsets.UTF_8);
log.warn("[auth] AIIMAGE_JWT_SECRET 未配置,使用内置默认密钥;"
+ "生产环境请通过环境变量 AIIMAGE_JWT_SECRET 配置固定密钥(需与桌面客户端一致)");
+ "生产环境请在 application-server.yml 配置 aiimage.auth.jwt-secret");
} else {
keyBytes = configured.getBytes(StandardCharsets.UTF_8);
}