76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
const axios = require('axios');
|
||
|
||
// 后端API基础URL
|
||
const API_BASE_URL = 'http://localhost:4330/api';
|
||
|
||
// 登录信息
|
||
const loginData = {
|
||
username: 'admin',
|
||
password: 'admin123'
|
||
};
|
||
|
||
// 测试登出功能
|
||
const testLogout = async () => {
|
||
try {
|
||
console.log('开始测试登出功能...');
|
||
|
||
// 1. 先登录获取token
|
||
console.log('1. 登录获取token...');
|
||
const loginResponse = await axios.post(`${API_BASE_URL}/auth/login`, loginData);
|
||
|
||
console.log('登录响应完整数据:', loginResponse.data);
|
||
|
||
if (!loginResponse.data.success) {
|
||
console.error('登录失败:', loginResponse.data.message);
|
||
return;
|
||
}
|
||
|
||
// 根据之前的修改,token应该在data对象中
|
||
let token = null;
|
||
if (loginResponse.data.data && loginResponse.data.data.access_token) {
|
||
token = loginResponse.data.data.access_token;
|
||
} else if (loginResponse.data.token) {
|
||
token = loginResponse.data.token;
|
||
}
|
||
|
||
if (!token) {
|
||
console.error('❌ 无法从登录响应中获取token');
|
||
return;
|
||
}
|
||
|
||
console.log('登录成功,获取到token:', token.substring(0, 20) + '...');
|
||
|
||
// 2. 调用登出接口
|
||
console.log('\n2. 调用登出接口...');
|
||
const logoutResponse = await axios.post(
|
||
`${API_BASE_URL}/auth/logout`,
|
||
{},
|
||
{
|
||
headers: {
|
||
Authorization: `Bearer ${token}`
|
||
}
|
||
}
|
||
);
|
||
|
||
console.log('登出响应状态码:', logoutResponse.status);
|
||
console.log('登出响应数据:', logoutResponse.data);
|
||
|
||
if (logoutResponse.status === 200 && logoutResponse.data.success) {
|
||
console.log('\n✅ 登出功能测试成功!');
|
||
} else {
|
||
console.error('❌ 登出功能测试失败:', logoutResponse.data);
|
||
}
|
||
|
||
} catch (error) {
|
||
console.error('❌ 测试过程中发生错误:', error.message);
|
||
if (error.response) {
|
||
console.error('错误状态码:', error.response.status);
|
||
console.error('错误响应数据:', error.response.data);
|
||
}
|
||
}
|
||
};
|
||
|
||
// 执行测试
|
||
if (require.main === module) {
|
||
testLogout();
|
||
} |