Go to file
kyuuseiryuu c70aeda412 feat(auth): add Kaiqiu account binding and update WebSocket architecture
- Add `UserBind` model to Prisma schema for linking Logto and Kaiqiu user IDs.
- Implement `/api/account/bind` endpoint (GET/PUT) to handle Kaiqiu account binding and retrieval.
- Refactor `KaiqiuService` to include a `login` method that performs browser automation-like login on kaiqiuwang.cc using `cheerio` and `fetch`.
- Update `UserCenter` page to include a new `BindKaiqiuAccount` component.
- Restructure `WebSocketService`:
  - Change from a simple global connection map to a per-user client tracking system (`#userClients`).
  - Update topic naming conventions (e.g., `ONLINE_MEMBER_CHANGE` -> `MEMBER_CHANGE`).
  - Add client-side broadcast capabilities for user-specific events like `MY_CLIENT_ONLINE`.
  - Add support for dynamic subscription handling (SUB/UNSUB) via WebSocket messages.
- Update `verifyLogtoToken` to accept either `Headers` or a raw token string for flexibility in WebSocket auth.
- Minor fixes: typo corrections in `WSTopic` enum and commented out debug logs.

BREAKING CHANGE: WebSocket payload structure has changed.
The `ws.data` property now contains a `WsPaylaod` object with a `user` field (previously it was a JSON string of the JWT payload).
The `WSTopic` names have been updated (e.g., `ONLINE_MEMBER_CHANGE` is now `MEMBER_CHANGE`), requiring updates to any client code subscribing to these topics.
2026-03-18 01:18:34 +09:00
__test__ feat(auth): add Kaiqiu account binding and update WebSocket architecture 2026-03-18 01:18:34 +09:00
.vscode feat(global): find user 2026-02-10 11:11:08 +09:00
prisma feat(auth): add Kaiqiu account binding and update WebSocket architecture 2026-03-18 01:18:34 +09:00
src feat(auth): add Kaiqiu account binding and update WebSocket architecture 2026-03-18 01:18:34 +09:00
.env.example feat: implement user favorite player system with Logto sync 2026-03-09 10:16:27 +09:00
.gitignore feat: implement user favorite player system with Logto sync 2026-03-09 10:16:27 +09:00
bun-env.d.ts init 2026-01-29 22:00:49 +09:00
bun.lock feat: migrate user fav system from session aud to Logto sub 2026-03-16 12:45:12 +09:00
bunfig.toml init 2026-01-29 22:00:49 +09:00
docker-compose.yml chore(docker): add restart policy for app service 2026-02-10 21:21:11 +09:00
dockerfile feat(WebSocket & Event System): Add real-time updates and event subscription 2026-03-17 17:26:52 +09:00
package.json feat: migrate user fav system from session aud to Logto sub 2026-03-16 12:45:12 +09:00
prisma.config.ts feat: implement user favorite player system with Logto sync 2026-03-09 10:16:27 +09:00
README.md init 2026-01-29 22:00:49 +09:00
tsconfig.json init 2026-01-29 22:00:49 +09:00

bun-react-template

To install dependencies:

bun install

To start a development server:

bun dev

To run for production:

bun start

This project was created using bun init in bun v1.2.21. Bun is a fast all-in-one JavaScript runtime.