update_app_callback.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env python3
  2. """
  3. 更新应用回调URL
  4. """
  5. import pymysql
  6. from urllib.parse import urlparse
  7. import os
  8. import json
  9. from dotenv import load_dotenv
  10. load_dotenv()
  11. def update_app_callback():
  12. """更新应用回调URL"""
  13. database_url = os.getenv('DATABASE_URL', '')
  14. parsed = urlparse(database_url)
  15. config = {
  16. 'host': parsed.hostname or 'localhost',
  17. 'port': parsed.port or 3306,
  18. 'user': parsed.username or 'root',
  19. 'password': parsed.password or '',
  20. 'database': parsed.path[1:] if parsed.path else 'sso_db',
  21. 'charset': 'utf8mb4'
  22. }
  23. try:
  24. conn = pymysql.connect(**config)
  25. cursor = conn.cursor()
  26. # 更新回调URL
  27. new_redirect_uris = [
  28. "http://localhost:8001/auth/callback", # 子系统后端回调
  29. "http://localhost:3001/auth/callback", # 子系统前端回调
  30. "http://localhost:3000/callback", # 原有的回调URL
  31. "http://localhost:8080/callback" # 原有的回调URL
  32. ]
  33. cursor.execute("""
  34. UPDATE apps
  35. SET redirect_uris = %s, updated_at = NOW()
  36. WHERE app_key = %s
  37. """, (json.dumps(new_redirect_uris), 'eqhoIdAyAWbA8MsYHsNqQqNLJbCayTjY'))
  38. conn.commit()
  39. # 验证更新
  40. cursor.execute("""
  41. SELECT name, redirect_uris
  42. FROM apps
  43. WHERE app_key = %s
  44. """, ('eqhoIdAyAWbA8MsYHsNqQqNLJbCayTjY',))
  45. result = cursor.fetchone()
  46. if result:
  47. print(f"✅ 应用回调URL更新成功")
  48. print(f"应用名称: {result[0]}")
  49. print(f"回调URL列表:")
  50. urls = json.loads(result[1])
  51. for i, url in enumerate(urls, 1):
  52. print(f" {i}. {url}")
  53. cursor.close()
  54. conn.close()
  55. except Exception as e:
  56. print(f'❌ 更新失败: {e}')
  57. if __name__ == "__main__":
  58. update_app_callback()