Spaces:
Runtime error
Runtime error
| """ | |
| 認証管理モジュール | |
| 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:]}" |