feat: 重写种子脚本实现小学完整场景 + 修复 proxy getToken 密钥

- scripts/seed.ts: 完全重写,实现小学场景初始化
  - 1所学校(实验小学)、2个年级(一/二年级)、每年级2个班级
  - 8名教师(每班2名:1班主任+1科任,跨班覆盖语数外3科)
  - 24名学生(每班6名)+ 24名家长
  - 3科教材(语数外各1本)+ 章节 + 知识点
  - 15道题目(每科5道:单选/文本/判断)
  - 2套试卷(语文/数学)+ 24份提交 + 120个答案
  - 2套作业 + 6份提交 + 30个答案
  - 课表、成绩、考勤、课程计划、公告等完整数据
  - 6个角色 + 47个权限点的 RBAC 映射
- src/proxy.ts: 修复 getToken 在 edge 运行时缺少 secret 的问题
  - 显式传入 secret: process.env.NEXTAUTH_SECRET
  - 解决 MissingSecret 错误

测试账号(密码均为 123456):
- admin@xiaoxue.edu.cn (管理员)
- t_chinese_1@xiaoxue.edu.cn (语文老师/一年级1班班主任)
- t_math_1@xiaoxue.edu.cn (数学老师)
- t_english_1@xiaoxue.edu.cn (英语老师)
- student_g1c1_1@xiaoxue.edu.cn (学生)
- parent_g1c1_1@xiaoxue.edu.cn (家长)
This commit is contained in:
SpecialX
2026-06-17 14:05:58 +08:00
parent 3b6272c99d
commit f013337ff7
2 changed files with 1177 additions and 513 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -43,7 +43,10 @@ export async function proxy(request: NextRequest) {
return NextResponse.next() return NextResponse.next()
} }
const token = await getToken({ req: request }) const token = await getToken({
req: request,
secret: process.env.NEXTAUTH_SECRET,
})
// Not authenticated → redirect to login // Not authenticated → redirect to login
if (!token) { if (!token) {