""" 認証管理モジュール API認証とUI認証を統一管理 """ import os from typing import Optional class AuthManager: """認証管理クラス""" def __init__(self): """初期化""" self.api_key = os.getenv("API_KEY", "") def is_configured(self) -> bool: """認証が設定されているか確認""" return bool(self.api_key) def validate_api_key(self, provided_key: Optional[str]) -> bool: """ APIキーの検証 Args: provided_key: 提供されたAPIキー Returns: 検証結果 """ # 認証が設定されていない場合は常に成功 if not self.is_configured(): return True # キーが提供されていない場合は失敗 if not provided_key: return False # キーの一致を確認 return provided_key == self.api_key def validate_ui_key(self, provided_key: str) -> bool: """ UI用のAPIキー検証 Args: provided_key: UIから提供されたAPIキー Returns: 検証結果 """ # 認証が設定されていない場合は常に成功 if not self.is_configured(): return True # 空文字の場合は失敗 if not provided_key: return False # キーの一致を確認 return provided_key == self.api_key def get_masked_key(self) -> str: """ マスクされたAPIキーを取得(デバッグ用) Returns: マスクされたキー文字列 """ if not self.api_key: return "Not configured" if len(self.api_key) <= 8: return "****" # 最初の2文字と最後の2文字を表示 return f"{self.api_key[:2]}{'*' * (len(self.api_key) - 4)}{self.api_key[-2:]}"