fix: add secret_str when using encoded_user_data (#501)

* fix: add secret_str handling in middleware when using encoded_user_data

* fix: fallback only

* fix: get directly

* fix: use request.scope

* fix: await

* style: format
This commit is contained in:
Viren070
2025-04-30 00:22:26 +01:00
committed by GitHub
parent c1ae452c57
commit 1c4bfa2d1f
3 changed files with 6 additions and 2 deletions
+2 -2
View File
@@ -42,7 +42,7 @@ from utils.lock import (
maintain_heartbeat,
release_scheduler_lock,
)
from utils.network import get_request_namespace, get_user_public_ip, get_user_data
from utils.network import get_request_namespace, get_user_public_ip, get_user_data, get_secret_str
from utils.parser import generate_manifest
from utils.runtime_const import (
DELETE_ALL_META,
@@ -606,7 +606,7 @@ async def get_streams(
video_id: str,
response: Response,
request: Request,
secret_str: str = None,
secret_str: str = Depends(get_secret_str),
season: int = None,
episode: int = None,
user_data: schemas.UserData = Depends(get_user_data),
+2
View File
@@ -71,6 +71,7 @@ class UserDataMiddleware(BaseHTTPMiddleware):
encoded_user_data = request.headers.get("encoded_user_data")
if encoded_user_data:
user_data = crypto_utils.decode_user_data(encoded_user_data)
secret_str = await crypto_utils.process_user_data(user_data)
else:
secret_str = request.path_params.get("secret_str") or request.query_params.get("secret_str")
user_data = await crypto_utils.decrypt_user_data(secret_str)
@@ -126,6 +127,7 @@ class UserDataMiddleware(BaseHTTPMiddleware):
# Attach UserData to request state for access in endpoints
request.scope["user"] = user_data
request.scope["secret_str"] = secret_str
return await call_next(request)
+2
View File
@@ -328,6 +328,8 @@ def get_request_namespace(request: Request) -> str:
def get_user_data(request: Request, secret_str: str | None = None) -> UserData:
return request.user
def get_secret_str(request: Request) -> str:
return request.scope.get("secret_str")
def encode_mediaflow_proxy_url(
mediaflow_proxy_url: str,