Expand description
Authentication state tracking for WebSocket clients.
This module provides a robust authentication tracker that coordinates login attempts and ensures each attempt produces a fresh success or failure signal before operations resume. It follows a proven pattern used in production.
§Key Features
- Three-state model:
Unauthenticated,Authenticated,FailedviaAuthStateenum. - Oneshot signaling: Each auth attempt gets a dedicated channel for result notification.
- Superseding logic: New authentication requests cancel pending ones.
- Timeout handling: Configurable timeout for authentication responses.
- Generic error mapping: Adapters can map to their specific error types.
- Auth-gated waiting:
wait_for_authenticated()blocks until auth completes or fails.
§Recommended Integration Pattern
Based on production usage, the recommended pattern is:
- Order operations: Call
wait_for_authenticated()before private operations. This waits for re-auth after reconnection instead of rejecting immediately. - Reconnection flow: Authenticate BEFORE resubscribing to topics.
- Event propagation: Send auth failures through event channels to consumers.
- State lifecycle: Call
invalidate()on disconnect,succeed()/fail()handle auth results.
Structs§
- Auth
Tracker - Generic authentication state tracker for WebSocket connections.
Enums§
- Auth
State - Authentication state for a WebSocket session.