canglan
559970c5b7
feat: one account can bind both netease + skin identities
- db: user_identities table (UNIQUE user_id+source), migrate backfill from users
- auth: GET/POST/DELETE /api/auth/identities - bind/unbind/list identities
(netease requires UID, one per source, name uniqueness, keep >=1)
- register/external/plugin/admin-created users auto-write primary identity
- tickets: submit uses selected identity (validated belongs to user)
- dashboard: 我的身份 card with bind/unbind UI
- ticket-create: identity selector when >1 identity
2026-08-17 01:17:09 +08:00
..
2026-08-17 01:17:09 +08:00
2026-08-16 21:21:25 +08:00
2026-07-17 00:30:18 +08:00
2026-07-12 23:28:52 +08:00
2026-08-17 01:17:09 +08:00
2026-07-14 03:25:50 +08:00
2026-08-16 21:21:25 +08:00
2026-07-16 23:51:09 +08:00
2026-07-14 03:17:13 +08:00
2026-07-12 01:23:19 +08:00
2026-08-17 01:17:09 +08:00
2026-07-12 01:23:19 +08:00
2026-08-17 01:17:09 +08:00