const axios = require('axios'); // 设置axios实例 const api = axios.create({ baseURL: 'http://localhost:5352/api', timeout: 5000 }); // 登录凭证 const credentials = { username: 'admin', password: '123456' }; // 存储登录后的token let authToken = null; console.log('开始测试政府管理系统登录和退出功能'); console.log('======================================'); // 测试登录功能 async function testLogin() { console.log('\n1. 测试登录功能'); try { const response = await api.post('/auth/login', credentials); console.log('登录请求状态码:', response.status); console.log('登录响应数据:', response.data); if (response.status === 200 && response.data.code === 200 && response.data.data.token) { authToken = response.data.data.token; console.log('✅ 登录成功,已获取token'); return true; } else { console.log('❌ 登录失败:', response.data.message || '未知错误'); return false; } } catch (error) { console.log('❌ 登录请求失败:', error.message); return false; } } // 测试获取用户信息功能 async function testUserInfo() { if (!authToken) { console.log('\n2. 测试获取用户信息功能 - 跳过,未登录'); return false; } console.log('\n2. 测试获取用户信息功能'); try { const response = await api.get('/auth/userinfo', { headers: { 'Authorization': `Bearer ${authToken}` } }); console.log('用户信息请求状态码:', response.status); console.log('用户信息响应数据:', response.data); if (response.status === 200 && response.data.code === 200) { console.log('✅ 获取用户信息成功'); console.log(' 用户名:', response.data.data.username); console.log(' 角色:', response.data.data.role); console.log(' 姓名:', response.data.data.name); return true; } else { console.log('❌ 获取用户信息失败:', response.data.message || '未知错误'); return false; } } catch (error) { console.log('❌ 获取用户信息请求失败:'); if (error.response) { console.log(' 状态码:', error.response.status); console.log(' 响应数据:', error.response.data); } else { console.log(' 错误信息:', error.message); } return false; } } // 测试退出登录功能 async function testLogout() { if (!authToken) { console.log('\n3. 测试退出登录功能 - 跳过,未登录'); return false; } console.log('\n3. 测试退出登录功能'); try { const response = await api.post('/auth/logout', {}, { headers: { 'Authorization': `Bearer ${authToken}` } }); console.log('退出登录请求状态码:', response.status); console.log('退出登录响应数据:', response.data); if (response.status === 200 && response.data.code === 200) { console.log('✅ 退出登录成功'); // 验证token是否失效 try { const checkResponse = await api.get('/auth/userinfo', { headers: { 'Authorization': `Bearer ${authToken}` } }); console.log('❌ 退出登录后token仍然有效,这可能是一个安全问题'); } catch (checkError) { console.log('✅ 退出登录后token已失效,符合预期'); } return true; } else { console.log('❌ 退出登录失败:', response.data.message || '未知错误'); return false; } } catch (error) { console.log('❌ 退出登录请求失败:'); if (error.response) { console.log(' 状态码:', error.response.status); console.log(' 响应数据:', error.response.data); } else { console.log(' 错误信息:', error.message); } return false; } } // 运行完整测试 async function runTests() { const loginSuccess = await testLogin(); const userInfoSuccess = loginSuccess ? await testUserInfo() : false; const logoutSuccess = loginSuccess ? await testLogout() : false; console.log('\n测试总结'); console.log('=========='); console.log('登录功能测试:', loginSuccess ? '通过 ✅' : '失败 ❌'); console.log('获取用户信息测试:', userInfoSuccess ? '通过 ✅' : '失败 ❌'); console.log('退出登录功能测试:', logoutSuccess ? '通过 ✅' : '失败 ❌'); if (loginSuccess && userInfoSuccess && logoutSuccess) { console.log('\n🎉 所有测试通过!登录和退出登录功能正常工作。'); console.log('建议前端检查路由跳转和页面渲染逻辑,确保登录成功后能正确跳转到主页。'); } else { console.log('\n❌ 部分测试失败,需要进一步排查问题。'); } } // 开始测试 runTests();