| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- """
- 测试 OAuth 登录流程
- 验证配置是否正确
- """
- import requests
- import json
- BASE_URL = "http://localhost:8003"
- def test_oauth_status():
- """测试 OAuth 状态端点"""
- print("=" * 60)
- print("测试 1: OAuth 状态")
- print("=" * 60)
-
- response = requests.get(f"{BASE_URL}/api/oauth/status")
- print(f"状态码: {response.status_code}")
- print(f"响应: {json.dumps(response.json(), indent=2, ensure_ascii=False)}")
- print()
-
- return response.status_code == 200
- def test_oauth_login():
- """测试 OAuth 登录端点"""
- print("=" * 60)
- print("测试 2: OAuth 登录 URL 生成")
- print("=" * 60)
-
- response = requests.get(f"{BASE_URL}/api/oauth/login")
- print(f"状态码: {response.status_code}")
-
- if response.status_code == 200:
- data = response.json()
- print(f"授权 URL: {data['authorization_url']}")
- print(f"State: {data['state']}")
- print()
-
- # 验证 URL 包含正确的 client_id
- if "sRyfcQwNVoFimigzuuZxhqd36fPkVN5G" in data['authorization_url']:
- print("✅ Client ID 正确")
- else:
- print("❌ Client ID 错误")
-
- # 验证 URL 包含正确的 redirect_uri
- if "http://localhost:4200/auth/callback" in data['authorization_url']:
- print("✅ Redirect URI 正确")
- else:
- print("❌ Redirect URI 错误")
-
- return True
- else:
- print(f"错误: {response.text}")
- return False
- def main():
- """运行所有测试"""
- print("\n🚀 开始测试 OAuth 配置...\n")
-
- tests = [
- ("OAuth 状态", test_oauth_status),
- ("OAuth 登录", test_oauth_login),
- ]
-
- results = []
- for name, test_func in tests:
- try:
- result = test_func()
- results.append((name, result))
- except Exception as e:
- print(f"❌ 测试失败: {e}\n")
- results.append((name, False))
-
- # 打印总结
- print("=" * 60)
- print("测试总结")
- print("=" * 60)
-
- for name, result in results:
- status = "✅ 通过" if result else "❌ 失败"
- print(f"{name}: {status}")
-
- passed = sum(1 for _, result in results if result)
- total = len(results)
- print(f"\n总计: {passed}/{total} 测试通过")
-
- if passed == total:
- print("\n🎉 所有测试通过!OAuth 配置正确。")
- print("\n下一步:")
- print("1. 在浏览器中访问: http://localhost:4200/login")
- print("2. 点击 '使用 SSO 登录' 按钮")
- print("3. 在 OAuth 登录页面输入用户名和密码")
- print("4. 授权后应该自动登录到标注平台")
- else:
- print("\n⚠️ 部分测试失败,请检查配置。")
- if __name__ == "__main__":
- main()
|