54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""Test admin auth flow"""
|
||
|
|
import urllib.request, json, ssl
|
||
|
|
|
||
|
|
ctx = ssl.create_default_context()
|
||
|
|
|
||
|
|
# Step 1: Mock login to get token
|
||
|
|
print("=== 1. Mock Login ===")
|
||
|
|
data = json.dumps({"employee_id": "admin001"}).encode()
|
||
|
|
req = urllib.request.Request("https://itsupport.servyou.com.cn/api/h5/mock-login", data=data, method="POST")
|
||
|
|
req.add_header("Content-Type", "application/json")
|
||
|
|
try:
|
||
|
|
resp = urllib.request.urlopen(req, context=ctx, timeout=10)
|
||
|
|
body = json.loads(resp.read().decode())
|
||
|
|
token = body["data"]["token"]
|
||
|
|
print(f"Status: {resp.status}")
|
||
|
|
print(f"Token: {token}")
|
||
|
|
print(f"Employee: {body['data'].get('employee_name')}")
|
||
|
|
except urllib.request.HTTPError as e:
|
||
|
|
body = json.loads(e.read().decode())
|
||
|
|
print(f"Error {e.code}: {json.dumps(body, ensure_ascii=False)}")
|
||
|
|
token = None
|
||
|
|
|
||
|
|
if token:
|
||
|
|
# Step 2: Try to access admin dashboard with token
|
||
|
|
print("\n=== 2. Admin Dashboard (with token) ===")
|
||
|
|
req2 = urllib.request.Request("https://itsupport.servyou.com.cn/api/admin/dashboard/overview")
|
||
|
|
req2.add_header("Authorization", f"Bearer {token}")
|
||
|
|
try:
|
||
|
|
resp = urllib.request.urlopen(req2, context=ctx, timeout=10)
|
||
|
|
print(f"Status: {resp.status}")
|
||
|
|
body = json.loads(resp.read().decode())
|
||
|
|
print(f"Code: {body.get('code')}")
|
||
|
|
print(f"Message: {body.get('message')}")
|
||
|
|
if body.get("data"):
|
||
|
|
print(f"Data keys: {list(body['data'].keys())}")
|
||
|
|
except urllib.request.HTTPError as e:
|
||
|
|
body = json.loads(e.read().decode())
|
||
|
|
print(f"Status {e.code}: {json.dumps(body, ensure_ascii=False)}")
|
||
|
|
|
||
|
|
# Step 3: List agents
|
||
|
|
print("\n=== 3. List Agents ===")
|
||
|
|
req3 = urllib.request.Request("https://itsupport.servyou.com.cn/api/admin/agents")
|
||
|
|
req3.add_header("Authorization", f"Bearer {token}")
|
||
|
|
try:
|
||
|
|
resp = urllib.request.urlopen(req3, context=ctx, timeout=10)
|
||
|
|
print(f"Status: {resp.status}")
|
||
|
|
body = json.loads(resp.read().decode())
|
||
|
|
print(f"Code: {body.get('code')}")
|
||
|
|
print(f"Data: {json.dumps(body.get('data'), ensure_ascii=False)[:300]}")
|
||
|
|
except urllib.request.HTTPError as e:
|
||
|
|
body = json.loads(e.read().decode())
|
||
|
|
print(f"Status {e.code}: {json.dumps(body, ensure_ascii=False)}")
|