fix-training-package-token-issue.md 5.5 KB

训练包 Token 配置问题修复报告

问题描述

训练包用户在扫码登录后,Dashboard 所有面板显示为空,原因是:

  1. 根本原因.env.local 没有配置 QIWEI_AUTH_TOKEN
  2. 表现症状

    • Dashboard 状态接口返回 "online": false
    • 所有面板无数据
    • 用户不知道需要配置 token
  3. 为什么会发生

    • 打包脚本生成的 .env.local 模板过于简单
    • README 没有明确说明首次使用必须配置 token
    • 用户以为扫码登录就够了,不知道还需要额外配置

修复方案

1. 改进 .env.local 模板

位置scripts/build-training-package.mjswriteEnvTemplate 函数

改进内容

  • ✅ 添加醒目的顶部说明:「首次使用必须配置 QIWEI_AUTH_TOKEN」
  • ✅ 分区注释:必填项、自动生成项、可选配置
  • ✅ 详细的 token 获取方式说明(Claude Code / 飞马平台 / Fmode 控制台)
  • ✅ 每个字段都有清晰的用途说明

修改前

# fresh
QIWEI_UID=
QIWEI_API_BASE=https://server.fmode.cn/api/qiwei

修改后

# ============================================================
# 企微培训工作台 - 本机凭据配置
# ============================================================
# 首次使用必须配置 QIWEI_AUTH_TOKEN,否则所有功能无法使用。

# ---------- 必填项 ----------
# Fmode 认证 token(必须!格式:r:xxx 或 sk-xxx)
# 获取方式:
#   1. Claude Code 已配置 Fmode:自动检测
#   2. 飞马平台:登录后在个人中心获取
#   3. Fmode 控制台:https://server.fmode.cn/
QIWEI_AUTH_TOKEN=

# ---------- 自动生成项(登录后自动填充)----------
QIWEI_UID=
QIWEI_GUID=
QIWEI_API_BASE=https://server.fmode.cn/api/qiwei

2. 改进 README 文档

位置scripts/build-training-package.mjswriteFieldGuide 函数

改进内容

  • 第一步明确为「配置认证 Token」,放在启动之前
  • ✅ 提供两种配置方式:手动编辑(推荐)+ 页面配置
  • ✅ 添加「常见问题」章节,Q1 就是「面板为空」问题
  • ✅ 明确说明 token 获取的三种途径

修改前

## 用户实际要做的事

1. Fmode token:本机已经用过时会自动检测...
2. 开通席位...
3. 企微扫码...
4. 开启监听...

修改后

## 快速开始

### 第一步:配置认证 Token(必须!)

**重要:不配置 Token 会导致所有功能无法使用,面板显示为空。**

#### 方式 A:手动编辑配置文件(推荐)
1. 打开 `.env.local` 文件
2. 找到 `QIWEI_AUTH_TOKEN=` 这一行
3. 在等号后面粘贴你的 Fmode token
4. 保存文件

### 第二步:启动工作台
...

## 常见问题

### Q1: 工作台打开后所有面板都是空的?
**原因:** 没有配置 `QIWEI_AUTH_TOKEN`。
**解决:** 编辑 `.env.local` 文件,在 `QIWEI_AUTH_TOKEN=` 后面填入 token。

验证结果

当前训练包(D:/qiwei-training)状态

$ curl http://127.0.0.1:4320/api/status

认证配置: true
设备在线: true
订阅状态: true
uid: qiwei-6597ebbd-12be-41dc-937f-61903af00a0d

所有状态正常,Dashboard 可以正常显示数据

新打包流程验证

$ node scripts/build-training-package.mjs --outdir test-output
$ cat test-output/.env.local
# 包含详细的配置说明
$ cat test-output/README.md
# 第一步就是配置 Token

新用户拿到训练包后,会立即知道需要配置 token

影响范围

已修改文件

  • scripts/build-training-package.mjs - 打包脚本(新文件)
    • writeEnvTemplate() - 生成改进的 .env.local 模板
    • writeFieldGuide() - 生成改进的 README

已更新训练包

  • D:/qiwei-training/.env.local - 更新为新模板(保留实际配置值)
  • D:/qiwei-training/README.md - 更新为新文档

未来打包

所有通过 scripts/build-training-package.mjs 生成的训练包都会包含:

  • ✅ 清晰的配置说明
  • ✅ 首次使用指引
  • ✅ 常见问题解答

用户体验改进

修复前

  1. 用户拿到训练包
  2. 双击 exe,打开 Dashboard
  3. 扫码登录成功
  4. 所有面板都是空的
  5. 不知道哪里出了问题

修复后

  1. 用户拿到训练包
  2. 打开 README,第一步就是配置 Token
  3. 编辑 .env.local,填入 token
  4. 双击 exe,打开 Dashboard
  5. 扫码登录成功
  6. 所有面板正常显示数据

建议

进一步改进方向

  1. Dashboard 检测逻辑

    • 如果检测到 QIWEI_AUTH_TOKEN 为空,在页面顶部显示醒目提示
    • 提供「点击配置」按钮,直接跳转到配置页面
  2. 首次启动向导

    • 检测到是首次启动(.env.local 中 token 为空)
    • 自动打开配置向导页面
    • 验证 token 后再继续后续流程
  3. 错误提示优化

    • 当前 /api/status 返回 "online": false 时,用户不知道原因
    • 建议返回更具体的错误信息:"reason": "QIWEI_AUTH_TOKEN not configured"

总结

核心问题已修复

  • 打包脚本生成的配置文件和文档更加清晰
  • 现有训练包已更新为新格式
  • 用户不会再遇到「扫码后面板为空」的困惑

可立即交付

  • 当前训练包(D:/qiwei-training)状态正常
  • 新用户使用新打包的训练包时会得到清晰指引

📝 后续优化

  • Dashboard 可以增加配置检测和友好提示
  • 考虑添加首次启动向导