grab_auth_golden.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. """抓取登录链路相关接口的线上黄金样本"""
  3. import re, json, requests
  4. from pathlib import Path
  5. GOLDEN = Path(r"C:\Users\Administrator\WorkBuddy\2026-10-17-12-27-10\java-rewrite\golden")
  6. GOLDEN.mkdir(exist_ok=True)
  7. src = Path(r"F:\import goods\upload_goods.py").read_text(encoding="utf-8")
  8. token = re.search(r'TOKEN\s*=\s*"([^"]+)"', src).group(1)
  9. BASE = "https://shop.qinys.cn/index.php?s=/store"
  10. H = {"Access-Token": token}
  11. def get(path, params=None, name=None):
  12. r = requests.get(BASE + path, headers=H, params=params or {}, timeout=30)
  13. try:
  14. d = r.json()
  15. except Exception:
  16. print(name, "非 JSON:", r.text[:200]); return None
  17. if name:
  18. (GOLDEN / name).write_text(json.dumps(d, ensure_ascii=False, indent=2), encoding="utf-8")
  19. print(f"--- {path} status={d.get('status')} msg={d.get('message')}")
  20. return d
  21. d = get("/store.user/info", name="store_user_info.json")
  22. if d and d.get("status") == 200:
  23. data = d["data"]
  24. print("顶层键:", list(data.keys()))
  25. ui = data.get("userInfo") or {}
  26. print("userInfo 键:", sorted(ui.keys()))
  27. roles = data.get("roles") or {}
  28. print("roles 键:", sorted(roles.keys()))
  29. perms = roles.get("permissions") or []
  30. print("permissions 条数:", len(perms))
  31. if perms:
  32. print("permissions[0]:", json.dumps(perms[0], ensure_ascii=False)[:400])
  33. d2 = get("/store.menu/list", name="store_menu_list.json")
  34. if d2 and d2.get("status") == 200:
  35. data = d2["data"]
  36. print("menu data 类型:", type(data).__name__, "键:", list(data.keys()) if isinstance(data, dict) else len(data))
  37. lst = data.get("list") if isinstance(data, dict) else data
  38. if isinstance(lst, list) and lst:
  39. print("菜单条数:", len(lst))
  40. print("菜单[0]:", json.dumps(lst[0], ensure_ascii=False)[:400])