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}"