From 5af4558030b2f1daf1d3de4a486fcbc5affc1860 Mon Sep 17 00:00:00 2001 From: masasibata Date: Wed, 11 Feb 2026 18:43:39 +0300 Subject: [PATCH] feat: added cookie-based auth for remnawave reverse proxy --- remnawave/__init__.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/remnawave/__init__.py b/remnawave/__init__.py index e72a8a9..ef80b68 100644 --- a/remnawave/__init__.py +++ b/remnawave/__init__.py @@ -44,6 +44,7 @@ def __init__( caddy_token: Optional[str] = None, ssl_ignore: Optional[bool] = False, custom_headers: Optional[dict] = None, + cookies: Optional[dict] = None, ): """ Remnawave SDK init @@ -55,6 +56,7 @@ def __init__( caddy_token (Optional[str]): - Token for Caddy Auth (Headers). Defaults to None. ssl_ignore (Optional[bool]): - Whether to ignore SSL certificate errors. Defaults to False. custom_headers (Optional[dict]): - Custom headers to include in the requests. Defaults to None. + cookies (Optional[dict]): - Cookies for Reverse Proxy authorization. Defaults to None. """ self._client = client self._token = token @@ -62,6 +64,7 @@ def __init__( self.caddy_token = caddy_token self.ssl_ignore = ssl_ignore self.custom_headers = custom_headers + self.cookies = cookies self._validate_params() @@ -108,13 +111,21 @@ def _validate_params(self) -> None: logging.warning( "base_url and token will be ignored if client is provided" ) + if self.cookies is not None: + logging.warning( + "cookies will be ignored if client is provided" + ) def _prepare_client(self) -> httpx.AsyncClient: - return httpx.AsyncClient( - base_url=self._prepare_url(), - headers=self._prepare_headers(), - verify=not self.ssl_ignore, - ) + client_kwargs = { + "base_url": self._prepare_url(), + "headers": self._prepare_headers(), + "verify": not self.ssl_ignore, + } + if self.cookies is not None: + client_kwargs["cookies"] = self.cookies + + return httpx.AsyncClient(**client_kwargs) def _prepare_headers(self) -> dict: headers = {}