Source code for satorbis_kit.auth.auth_base
from abc import ABC, abstractmethod
from .token_store import TokenStore
[docs]
class BaseAuth(ABC):
"""Shared authentication interface."""
def __init__(self):
self.tokens = TokenStore()
[docs]
@abstractmethod
def authenticate(self):
pass # pragma: no cover
[docs]
@abstractmethod
def refresh_token(self):
pass # pragma: no cover
[docs]
def get_access_token(self):
if self.tokens.is_empty:
raise RuntimeError("Authentication has not been performed yet.")
if self.tokens.is_expired:
self.refresh_token()
return self.tokens.access_token