Skip to content

v0.30.0

Choose a tag to compare

@dmitry-lebedev dmitry-lebedev released this 23 Jun 08:16
· 34 commits to main since this release

Added — JWT refresh tokens (rotation + reuse detection)

  • Server: per-player IRefreshTokenGrain (SHA-256-hashed, rotating; replay of a used token revokes the family); POST /refresh + /logout; login returns a refresh token; reset-device/unlink revoke sessions. MetaAuthOptions gains AccessTokenLifetime (30 min) + RefreshTokenLifetime (30 days).
  • Client: MetaAuth.RefreshAsync + EnsureAuthenticatedAsync auto-refresh; new MetaTokenManager (single-flight on-demand + proactive). All transports accept an access-token provider so reconnect picks up a fresh token.
  • Breaking: MetaAuthOptions.TokenLifetime [Obsolete], default now 30 min; IMetaAuthProvider.RefreshAsync added; CachedToken/MetaLoginResult gained refresh fields.

Fixed

  • A host-registered IMetaConfigProvider<T> was shadowed by the auto-registered BroadcastingConfigProvider (regression since 0.27.0) — AddSharedMetaConfigProvider<T> now TryAdds the interface, so an explicit provider wins.