feat: 统一JWT密钥配置并修复签名验证问题
修复前端签名生成中bodyString硬编码问题 添加start-frontend.sh脚本启动前端服务 统一manage-app和gateway的JWT密钥配置 修复Repository扫描路径问题 更新测试配置和依赖 重构表名映射为sys_user和sys_role 完善用户实体类字段映射 添加集成测试配置和测试用例
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
详细登录测试 - 查看请求和响应详情
|
||||
"""
|
||||
from playwright.sync_api import sync_playwright
|
||||
import time
|
||||
|
||||
def test_login_detailed():
|
||||
with sync_playwright() as p:
|
||||
browser = p.chromium.launch(headless=True)
|
||||
context = browser.new_context()
|
||||
page = context.new_page()
|
||||
|
||||
requests_log = []
|
||||
responses_log = []
|
||||
|
||||
def handle_request(request):
|
||||
if '/api/' in request.url:
|
||||
headers = dict(request.headers)
|
||||
requests_log.append({
|
||||
'url': request.url,
|
||||
'method': request.method,
|
||||
'headers': headers
|
||||
})
|
||||
print(f"\n请求: {request.method} {request.url}")
|
||||
if 'authorization' in headers:
|
||||
print(f" Authorization: {headers['authorization'][:50]}...")
|
||||
if 'x-signature' in headers:
|
||||
print(f" X-Signature: {headers['x-signature']}")
|
||||
if 'x-timestamp' in headers:
|
||||
print(f" X-Timestamp: {headers['x-timestamp']}")
|
||||
if 'x-nonce' in headers:
|
||||
print(f" X-Nonce: {headers['x-nonce']}")
|
||||
|
||||
def handle_response(response):
|
||||
if '/api/' in response.url:
|
||||
responses_log.append({
|
||||
'url': response.url,
|
||||
'status': response.status,
|
||||
'body': response.text() if response.status != 200 else None
|
||||
})
|
||||
print(f"响应: {response.status} {response.url}")
|
||||
if response.status != 200:
|
||||
try:
|
||||
body = response.text()
|
||||
print(f" 错误: {body[:200]}")
|
||||
except:
|
||||
pass
|
||||
|
||||
page.on("request", handle_request)
|
||||
page.on("response", handle_response)
|
||||
|
||||
try:
|
||||
print("访问登录页...")
|
||||
page.goto("http://localhost:3002/login", timeout=10000)
|
||||
page.wait_for_load_state("networkidle", timeout=10000)
|
||||
|
||||
print("\n填写登录表单...")
|
||||
page.fill('input[type="text"]', 'admin')
|
||||
page.fill('input[type="password"]', 'admin123')
|
||||
|
||||
print("\n点击登录按钮...")
|
||||
page.click('button[type="submit"]')
|
||||
|
||||
time.sleep(5)
|
||||
|
||||
current_url = page.url
|
||||
print(f"\n当前URL: {current_url}")
|
||||
|
||||
token = page.evaluate("localStorage.getItem('token')")
|
||||
print(f"Token: {token if token else '不存在'}")
|
||||
|
||||
if token:
|
||||
print(f"Token内容: {token[:100]}...")
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n错误: {e}")
|
||||
finally:
|
||||
browser.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_login_detailed()
|
||||
Reference in New Issue
Block a user