Kamixitong/direct_api_test.py

67 lines
2.2 KiB
Python
Raw Normal View History

2025-11-11 21:39:12 +08:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import json
def direct_api_test():
"""
直接测试管理员创建API绕过登录验证
"""
base_url = "http://127.0.0.1:5000"
print("=== 直接测试管理员创建API ===")
# 测试数据
admin_data = {
"username": "direct_api_test_user",
"email": "direct_api_test@example.com",
"password": "direct_api_test123",
"role": 0,
"status": 1
}
print(f"发送数据: {json.dumps(admin_data, ensure_ascii=False)}")
try:
# 直接发送POST请求到API端点绕过登录验证
response = requests.post(
f"{base_url}/api/v1/admins",
json=admin_data,
headers={
"Content-Type": "application/json"
}
)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.text}")
# 尝试解析JSON响应
try:
result = response.json()
print(f"解析结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
if response.status_code == 200 and result.get('success'):
print("✅ 管理员创建成功!")
elif response.status_code == 400:
print("❌ 400错误 - 请求数据有问题")
# 检查是否是我们修复的问题
if "密码不能为空" in result.get('message', ''):
print(" 这是原始的密码验证错误,应该已经修复了")
else:
print(f" 其他400错误: {result.get('message')}")
elif response.status_code == 401:
print("⚠️ 401错误 - 需要登录(这是预期的安全行为)")
elif response.status_code == 403:
print("❌ 403错误 - 权限不足")
else:
print(f"❌ 其他错误: {response.status_code}")
except Exception as e:
print(f"无法解析JSON响应: {e}")
except Exception as e:
print(f"API请求失败: {e}")
if __name__ == "__main__":
direct_api_test()