调试指南
登录码链路
# 1. Redis 中是否有码
redis-cli GET game:main_room:login_code
# 2. 手动 verify
curl -X POST http://localhost:4000/api/auth/verify-code \
-H "Content-Type: application/json" \
-d '{"code":"123456","playerId":"550e8400-e29b-41d4-a716-446655440000"}'
# 3. 玩家序号
redis-cli GET game:main_room:player_number_seq
玩家身份
# 某 UUID 的显示名
redis-cli GET "player:<uuid>:displayName"
redis-cli GET "internal:player:<uuid>@game.local:displayName"
# 存活列表(internalEmail)
redis-cli SMEMBERS room:main_room:survivors
Session / JWT
浏览器: /api/auth/session — 检查 accessToken, name(displayName)
# 解码 JWT payload
node -e "console.log(JSON.parse(Buffer.from('TOKEN'.split('.')[1],'base64')))"
Socket(DevTools → Network → WS)
关注帧: login_code_published, game_state, new_question, winner
Admin API
curl -X POST http://localhost:4000/api/admin/publish-login-code \
-H "Authorization: Bearer $TOKEN"
负载测试
cd flood-test
node code-login-test.js
node e2e-code-game-load-test.js
定位流程
localStorage
DevTools → Application → bucssa_lottery_player_id — 玩家 UUID
清除后重新登录会分配 新编号(若旧 UUID 未在 survivors 中无影响)。