test_full_login_flow.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/usr/bin/env python3
  2. """
  3. 完整登录流程测试
  4. """
  5. import requests
  6. import json
  7. print("=" * 60)
  8. print("完整登录流程测试")
  9. print("=" * 60)
  10. base_url = "http://localhost:8000"
  11. # 1. 测试登录
  12. print("\n1. 测试登录...")
  13. print("-" * 60)
  14. login_response = requests.post(
  15. f"{base_url}/api/v1/auth/login",
  16. json={
  17. "username": "admin",
  18. "password": "Admin123456"
  19. }
  20. )
  21. print(f"状态码: {login_response.status_code}")
  22. login_data = login_response.json()
  23. if login_data.get("code") == 0:
  24. print("✅ 登录成功!")
  25. access_token = login_data["data"]["access_token"]
  26. refresh_token = login_data["data"]["refresh_token"]
  27. print(f"Access Token: {access_token[:50]}...")
  28. print(f"Refresh Token: {refresh_token[:50]}...")
  29. else:
  30. print(f"❌ 登录失败: {login_data.get('message')}")
  31. exit(1)
  32. # 2. 测试获取用户信息
  33. print("\n2. 测试获取用户信息...")
  34. print("-" * 60)
  35. userinfo_response = requests.get(
  36. f"{base_url}/api/v1/auth/userinfo",
  37. headers={
  38. "Authorization": f"Bearer {access_token}"
  39. }
  40. )
  41. print(f"状态码: {userinfo_response.status_code}")
  42. userinfo_data = userinfo_response.json()
  43. if userinfo_data.get("code") == 0:
  44. print("✅ 获取用户信息成功!")
  45. user = userinfo_data["data"]
  46. print(f"用户ID: {user.get('id')}")
  47. print(f"用户名: {user.get('username')}")
  48. print(f"邮箱: {user.get('email')}")
  49. print(f"是否激活: {user.get('is_active')}")
  50. else:
  51. print(f"❌ 获取用户信息失败: {userinfo_data.get('message')}")
  52. # 3. 测试刷新令牌
  53. print("\n3. 测试刷新令牌...")
  54. print("-" * 60)
  55. refresh_response = requests.post(
  56. f"{base_url}/api/v1/auth/refresh",
  57. json={
  58. "refresh_token": refresh_token
  59. }
  60. )
  61. print(f"状态码: {refresh_response.status_code}")
  62. refresh_data = refresh_response.json()
  63. if refresh_data.get("code") == 0:
  64. print("✅ 刷新令牌成功!")
  65. new_access_token = refresh_data["data"]["access_token"]
  66. print(f"新 Access Token: {new_access_token[:50]}...")
  67. else:
  68. print(f"❌ 刷新令牌失败: {refresh_data.get('message')}")
  69. print("\n" + "=" * 60)
  70. print("✅ 所有测试通过!登录功能正常工作。")
  71. print("=" * 60)