import functools from flask import _request_ctx_stack from auth_api.providers import AuthProviderFactory def auth(f): """Validates request with the required auth provider.""" provider_factory = AuthProviderFactory() @functools.wraps(f) def wrapper(*args, **kwargs): provider = provider_factory.create() _request_ctx_stack.top.current_user = provider.authorize() return f(*args, **kwargs) return wrapper