Files
niumalll/test_logout.js

76 lines
2.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}