Refactor configuration and enhance Telegram initData validation
- Improved formatting and readability in config.py and other files by adding line breaks. - Introduced INIT_DATA_MAX_AGE_SECONDS to enforce replay protection for Telegram initData. - Updated validate_init_data function to include max_age_seconds parameter for validation. - Enhanced API to reject old initData based on the new max_age_seconds setting. - Added tests for auth_date expiry and validation of initData in test_telegram_auth.py. - Updated README with details on the new INIT_DATA_MAX_AGE_SECONDS configuration.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
"""SQLAlchemy engine and session factory."""
|
||||
|
||||
from contextlib import contextmanager
|
||||
from typing import Generator
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
|
||||
from db.models import Base
|
||||
|
||||
_engine = None
|
||||
_SessionLocal = None
|
||||
@@ -26,7 +26,9 @@ def get_engine(database_url: str):
|
||||
if _engine is None:
|
||||
_engine = create_engine(
|
||||
database_url,
|
||||
connect_args={"check_same_thread": False} if "sqlite" in database_url else {},
|
||||
connect_args={"check_same_thread": False}
|
||||
if "sqlite" in database_url
|
||||
else {},
|
||||
echo=False,
|
||||
)
|
||||
return _engine
|
||||
|
||||
Reference in New Issue
Block a user