Skip to main content
Version: Current

Frontend 设计

NextAuth Providers

id用途
player-code玩家登录码
staff-credentialsAdmin/Display 密码
googleOAuth(保留)
azure-adOAuth(保留)

resolveRoles(): player:*@game.local → 非 admin/display

页面流

/ → /login (玩家) 或 /staff-login (工作人员)
登录成功 → middleware 按角色 → /play | /admin | /show

player-id.ts

STORAGE_KEY = 'bucssa_lottery_player_id'
getOrCreatePlayerId() → crypto.randomUUID()

主题 (theme.ts + globals.css)

<html data-theme="spring|mario">

CSS 变量与 .theme-* 工具类随主题切换背景、面板、字体。

AdminHeader

新增 props: loginCodeStatus, onPublishLoginCode, onCloseLoginCode

Show 页面

  • state: loginCodeActive, loginCode
  • listeners: login_code_published|status|closed
  • LoginCodeDisplayGameContent 条件渲染

类型守卫

isWinnerPayload, isTiePayload 支持 optional display 字段。

开发

npm run dev

auth.ts 白名单或 Staff 密码 env 后需重启。