yogo_jwt_generator.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import fire
  2. import json
  3. import time
  4. import hashlib
  5. import requests
  6. """ python yogo_jwt_generator.py 要传的enterprise_user_id 要传的enterprise_building_ids"""
  7. prod_jwt = {
  8. "765": "rHoutZccIhyvpMXF9dkRZBycjw+Hlk3yvPO3iJlQomE="
  9. }
  10. def _sign(params: dict, enterprise_secret: str) -> str:
  11. keys = sorted(params.keys())
  12. sign_str = enterprise_secret
  13. for key in keys:
  14. if key == "sign":
  15. continue
  16. sign_str += f"{key}{params[key]}"
  17. m = hashlib.sha1()
  18. m.update(sign_str.encode("utf-8"))
  19. return m.hexdigest()
  20. def gen_sign(enterprise_user_id, enterprise_building_ids):
  21. print("************************************嘉里jwt**************************************")
  22. get_delivery_url = "https://api.yogorobot.com/v3/user/api/v1/user/login/jwt"
  23. get_delivery_params = {
  24. "timestamp": int(time.time()),
  25. "app": "delivery",
  26. "enterprise_id": 765,
  27. "enterprise_building_ids": enterprise_building_ids,
  28. "enterprise_user_id": enterprise_user_id,
  29. }
  30. get_delivery_params["sign"] = _sign(
  31. params=get_delivery_params,
  32. enterprise_secret=prod_jwt["765"],
  33. )
  34. res = requests.post(
  35. url=get_delivery_url,
  36. json=get_delivery_params,
  37. )
  38. print(json.loads(res.text))
  39. if __name__ == "__main__":
  40. fire.Fire(gen_sign)