import json import os from pathlib import Path # Локальные файлы для хранения данных TOKEN_FILE = Path(os.environ["STORAGE_PATH"] + "/token.json") VERIFIER_FILE = Path(os.environ["STORAGE_PATH"] + "/pkce_verifier.json") CLIENT_INFO_FILE = Path(os.environ["STORAGE_PATH"] + "/client_info.json") def save_token(token_data: dict): """Сохранить токен в файл""" with open(TOKEN_FILE, "w") as f: json.dump(token_data, f, indent=2) def load_token() -> dict | None: """Загрузить токен из файла""" if not TOKEN_FILE.exists(): return None with open(TOKEN_FILE, "r") as f: return json.load(f) def delete_token(): """Удалить файл с токеном""" if TOKEN_FILE.exists(): TOKEN_FILE.unlink() def save_verifier(verifier: str): """Сохранить PKCE верификатор в файл""" with open(VERIFIER_FILE, "w") as f: json.dump({"verifier": verifier}, f) def load_verifier() -> str | None: """Загрузить PKCE верификатор из файла""" if not VERIFIER_FILE.exists(): return None with open(VERIFIER_FILE, "r") as f: data = json.load(f) return data.get("verifier") def delete_verifier(): """Удалить файл с PKCE верификатором""" if VERIFIER_FILE.exists(): VERIFIER_FILE.unlink() def save_client_info(client_info: dict): """Сохранить информацию о клиенте локально""" with open(CLIENT_INFO_FILE, "w") as f: json.dump(client_info, f, indent=2) def load_client_info() -> dict | None: """Загрузить информацию о клиенте""" if not CLIENT_INFO_FILE.exists(): return None with open(CLIENT_INFO_FILE, "r") as f: return json.load(f) def delete_client_info(): """Удалить файл с информацией о клиенте""" if CLIENT_INFO_FILE.exists(): CLIENT_INFO_FILE.unlink()