FAQ
国内和美国登录有什么区别?
| 国内 | 美国 | |
|---|---|---|
| Player | /login 6 位登录码 | /login Google / Azure OAuth |
| Admin / Display | /staff-login 邮箱+密码 | /login OAuth + 白名单邮箱 |
两套方案 不要在同一活动混用。详见 认证场景。
国内:玩家怎么登录?
现场看大屏 6 位码 → /login 输入 → 成为「玩家 #NNN」。不需要 Google 账号。
国内:Admin/Display 怎么登录?
/staff-login,白名单邮箱 + 环境变量 STAFF_ADMIN_PASSWORD / STAFF_DISPLAY_PASSWORD,不是登录码。
美国:三端怎么登录?
均在 /login 用 Google 或 Azure AD。Admin/Display 须使用 auth.ts 中配置的邮箱,由 OAuth 回调后识别角色。无需登录码与 Staff 密码。
登录码会过期吗?(国内)
不会自动过期。Admin 关闭登录码 或 重置游戏 后失效。重新发布会覆盖旧码。
同一手机换浏览器还会是同一个玩家吗?(国内)
localStorage 存 UUID,同一浏览器 复用编号。换浏览器/清缓存 → 新 UUID → 新编号。
为什么登录后被踢出?
游戏已开始(Admin 发过第一题)且你是 新玩家。等 reset 后再登录。国内、美国均适用。
大屏为什么显示 email 而不是玩家编号?
国内应显示 winnerDisplay / finalistsDisplay(玩家 #XXX)。若只见 email,检查 Frontend 是否使用 display 字段。美国 OAuth 场景通常直接显示邮箱。
如何从国内切到美国 OAuth?
配置 GOOGLE_* / AZURE_AD_*,在 login/page.tsx 启用 UsLoginPanel / RegionToggle,见 添加新功能 — 美区 OAuth。
如何切换 Mario 主题?
NEXT_PUBLIC_THEME=mario,重新 build/deploy Frontend。
200 人同时登录会有问题吗?
国内可用 code-login-test.js 压测;美国需验证 OAuth 与 Socket 并发。活动前建议在 staging 跑一遍。
reset 会清什么?
游戏状态、登录码(国内)、玩家编号映射、答案记录。不自动清 PostgreSQL GameResult 历史。
能多房间吗?
当前单房间 main_room。多房间需改 room.ts 与 Redis key 策略。
如何查历史胜负?
SELECT * FROM "GameResult" ORDER BY "endedAt" DESC;
国内存 internalEmail,当时大屏为 displayName;美国多为 OAuth email。