Commit Graph

6 Commits

Author SHA1 Message Date
65edbaf157 refactor: session-based external auth, dynamic sources, drop netease UID
Auth (external API):
- ID: 16-digit random (non-sequential); Secret: SeaReport- + 32 hex
- POST /auth/session: ID+Secret -> Bearer SESSION (24h, single-session,
  old session invalidated on re-issue, disabled client invalidates)
- clientAuth now validates Bearer SESSION via api_sessions JOIN api_clients

Sources (dynamic, no default, open-source friendly):
- sources table + CRUD route (/api/sources, owner; delete guarded by usage)
- users/user_identities.source ENUM -> VARCHAR, seeded netease/skin
- register/admin create/identity bind: validate against enabled sources
- UI: 来源管理 page; source dropdowns loaded dynamically everywhere
  (register, dashboard identity, users admin, bans), labels dynamic

UID removal:
- game_uid/reporter_game_uid no longer required (db default '', validations
  dropped, frontend fields optional)

Docs: EXTERNAL-API.md session flow + new credential format; API.md updated
Verified: 37 checks (syntax, session logic, source CRUD, UID removal, docs)
2026-08-19 20:08:06 +08:00
19615cfa56 feat: edit ban entries with modal form 2026-07-18 01:53:24 +08:00
5cb17228a8 fix: missing duration dropdown in bans add form 2026-07-18 01:41:37 +08:00
dce812aa2f feat: bans show account source + ban source (ticket/manual) 2026-07-18 01:35:30 +08:00
ce51abc127 fix: add source field to bans + display in list 2026-07-18 01:26:37 +08:00
d242786a3a feat: bans sidebar page, public view with masked names 2026-07-18 01:17:40 +08:00