#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试 OpenClaw Auth Runtime """ import sys from pathlib import Path # 添加当前目录到路径 sys.path.insert(0, str(Path(__file__).parent)) from auth_runtime import ( create_env_config, get_access_token, request_api_with_auto_refresh, load_client_key_from_env, ) def main(): print("=" * 60) print("OpenClaw Auth Runtime 测试") print("=" * 60) # 方式 1: 从 .env 加载 CLIENT_KEY try: client_key = load_client_key_from_env() print(f"✓ 从 .env 文件加载 CLIENT_KEY: {client_key[:10]}...") except ValueError as e: print(f"❌ {e}") print("\n请在 .env 文件中设置 CLIENT_KEY") print("或设置环境变量:export CLIENT_KEY=your-key") return 1 # 创建配置 config = create_env_config() print(f"✓ 配置创建成功") print(f" AUTH_BASE: {config.auth_base}") print(f" AUTH_CACHE_DIR: {config.auth_cache_dir}") # 获取访问令牌 print("\n【测试 1】获取访问令牌...") try: token = get_access_token(dry_run=False, config=config) print(f"✓ 获取成功:{token[:20]}...") except Exception as e: print(f"❌ 失败:{e}") return 1 # 测试 API 请求 print("\n【测试 2】测试 API 请求...") try: # 示例:请求认证端点 response = request_api_with_auto_refresh( method="POST", url=f"{config.auth_base}/auth/skill-credit/session", dry_run=False, config=config, body={"clientKey": config.client_key}, ) print(f"✓ 响应状态:{response.status}") print(f" 响应体:{response.body[:100]}...") except Exception as e: print(f"❌ 失败:{e}") print("\n" + "=" * 60) print("✅ 测试完成") print("=" * 60) return 0 if __name__ == "__main__": sys.exit(main())