Commit Graph

5 Commits

Author SHA1 Message Date
30ad51c493 feat(backend): authenticate WebSocket clients with Keycloak tokens
- New auth module verifies Keycloak access tokens offline against the
  realm's signing keys (issuer, RS256, typ=Bearer, allowed azp); guests
  are recognised by the guest realm role
- Clients send an auth message after connecting and get on_auth or
  on_auth_error; unauthenticated sockets are closed after 5 seconds and
  their messages ignored; a socket can refresh its token but not switch user
- A user can be connected from several sockets; a late close of an old
  socket no longer drops the new one
- Malformed messages are ignored instead of throwing
- Games store player names and guest flags and send them with the
  connection info
- Legacy ?userKey= clients and /register stay available behind
  LEGACY_USERKEY_AUTH; legacy keys must be UUIDs so they cannot take a
  Keycloak user's kc: id
- TypeScript target raised to es2020 for async/await
2026-10-14 01:52:07 +03:00
6d59c33300 [ci] trigger test1 2024-12-21 22:25:47 +03:00
9c42f867e9 v0.4.7 2024-12-08 23:26:17 +03:00
0c96056f84 v0.4.6 2024-12-08 22:49:21 +03:00
7860f9aac4 (refactor) change folder structure 2024-06-18 01:11:26 +03:00