基本使用
登录方式取决于部署场景,见 认证场景。下文默认 国内场景;美国场景三端均从 /login 使用 OAuth,无发码步骤。
国内:玩家(/login → /play)
- 查看现场大屏上的 6 位登录码
- 打开
/login,输入登录码 - 首次登录自动分配 玩家 #NNN 显示名
- 进入
/play等待 Admin 发题 - 倒计时内点击 A 或 B
提示
登录码错误会提示「请查看现场投屏」。Admin 可 关闭登录码 停止新玩家入场。
国内:工作人员 Admin(/staff-login → /admin)
| 操作 | 说明 |
|---|---|
| 发布登录码 | 生成新 6 位码,广播至 Show |
| 关闭登录码 | 清除码,大屏显示「等待发布」 |
| 发布题目 | 从 13 道预设选题发题 |
| 重置游戏 | 清空所有状态,需 confirm |
发题前状态须为 waiting(或本局已 ended)。
国内:工作人员 Display(/staff-login → /show)
- 默认展示 登录码界面(有码时全屏显示数字)
- 发题后切换为赛况 / 题目 / 倒计时
- 游戏结束展示 WinnerModal 或 TieModal(显示名而非 email)
美国:三端 OAuth
- 配置 Google / Azure AD 环境变量
- 玩家、Admin、Display 均访问
/login,选择 OAuth 登录 - Admin / Display 邮箱须在
frontend/src/lib/auth.ts白名单中 - 无「发布登录码」;控场流程见 Web 界面指南
路由守卫
middleware.ts:
/admin→ 需isAdmin/show→ 需isDisplay/play→ Admin 重定向/admin,Display 重定向/show/login、/staff-login→ 公开
主题切换
NEXT_PUBLIC_THEME=mario # 像素 Mario 风
NEXT_PUBLIC_THEME=spring # 默认春节风
修改后重新 build Frontend。
Mario 主题预览页
开发用:/winner-modal-preview — 获胜弹窗预览。