Source code for scapi.http.auth.token

from typing import Any, Dict, Optional, TypeAlias

from scapi.consts import Defaults
from scapi.http.client import Headers, HTTPClient


TokenPayload: TypeAlias = Dict[str, Any]


[docs] class TokenHTTPClient(HTTPClient): """HTTP client with Bearer token authentication.""" def __init__( self, token: Optional[str] = None, base_url: str = "", timeout: int = Defaults.TIMEOUT, headers: Optional[Headers] = None, ): super().__init__(base_url=base_url, timeout=timeout) self._token = token self._headers.update({"Content-Type": "application/json"}) if headers: self._headers.update(headers) if token: self._headers.update({"Authorization": f"Bearer {self._token}"}) @property def token_part(self) -> str: """Masked token.""" return str(self._token and f"{self._token[:10]}...{self._token[-5:]}")
[docs] def update_token(self, new_token: str) -> None: """Update authentication token.""" self._token = new_token self._headers["Authorization"] = f"Bearer {self._token}"