from functools import lru_cache from authlib.integrations.starlette_client import OAuth from app.core.settings import get_settings @lru_cache def get_oauth() -> OAuth: settings = get_settings() oauth = OAuth() oauth.register( name="azure", client_id=settings.azure_client_id, client_secret=settings.azure_client_secret, server_metadata_url=( f"https://login.microsoftonline.com/{settings.azure_tenant_id}" "/v2.0/.well-known/openid-configuration" ), client_kwargs={"scope": "openid profile email"}, ) return oauth