Kamixitong/direct_api_test.py
2025-11-11 21:39:12 +08:00

67 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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()