Server Token Manager¶
Module: s2auth.server.token_manager
One-time pairing token manager for interactive server use.
UTC = timezone.utc
module-attribute
¶
_lock = threading.Lock()
module-attribute
¶
_pending_token = None
module-attribute
¶
_pending_token_expires_at = None
module-attribute
¶
log = logging.getLogger(__name__)
module-attribute
¶
Settings
¶
Bases: BaseSettings
Source code in src/s2auth/server/settings.py
ExpiredOneTimePairingTokenError
¶
_normalize_token(token)
¶
Treat empty or whitespace-only tokens as unset.
set_pending_pairing_token(token, ttl_seconds=None)
¶
Store a one-time pairing token to be consumed by the next new client.
Source code in src/s2auth/server/token_manager.py
consume_pending_pairing_token()
¶
Return and clear the pending one-time pairing token, or None if not set.
_consume_pending_pairing_token_with_state()
¶
Consume pending token and return (token, expired_before_use, had_pending_token).
Source code in src/s2auth/server/token_manager.py
prime_default_pairing_token(server_settings)
¶
Promote DEFAULT_PAIRING_TOKEN into the pending one-time token bucket.
This is intended for server startup so token lifetime starts at startup rather than at first pairing request.
Source code in src/s2auth/server/token_manager.py
resolve_pairing_token(server_settings, generated_token)
¶
Resolve the token to use for a new pairing attempt.
Resolution order: 1. Pending one-time token generated during runtime (if not expired) 2. Startup DEFAULT_PAIRING_TOKEN (one-time, only if still within TTL) 3. Generated fallback token