Files
nxxmdata/test-logout.js

75 lines
2.3 KiB
JavaScript
Raw 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');
// 配置axios实例
const api = axios.create({
baseURL: 'http://localhost:5352/api',
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
});
// 测试退出登录功能
async function testLogout() {
console.log('开始测试退出登录功能...');
try {
// 1. 首先登录获取token
console.log('1. 登录获取token...');
const loginResponse = await api.post('/auth/login', {
username: 'admin',
password: '123456'
});
if (loginResponse.data.code !== 200) {
console.error('登录失败,无法继续测试退出登录:', loginResponse.data.message);
return;
}
const token = loginResponse.data.data.token;
console.log('登录成功获取到token:', token);
// 2. 使用获取到的token发送退出登录请求
console.log('\n2. 测试退出登录...');
const logoutResponse = await api.post('/auth/logout', {}, {
headers: {
'Authorization': `Bearer ${token}`
}
});
console.log('退出登录响应:', logoutResponse.data);
if (logoutResponse.data.code === 200) {
console.log('退出登录成功!');
// 3. 验证token是否仍然有效尝试用相同token获取用户信息
console.log('\n3. 验证退出登录后token是否失效...');
try {
const userInfoResponse = await api.get('/auth/userinfo', {
headers: {
'Authorization': `Bearer ${token}`
}
});
console.log('用户信息响应:', userInfoResponse.data);
if (userInfoResponse.data.code === 200) {
console.warn('警告: 退出登录后token仍然有效建议实现token黑名单机制');
} else {
console.log('验证成功: 退出登录后token已失效');
}
} catch (error) {
console.log('验证成功: 退出登录后token已失效');
}
} else {
console.error('退出登录失败:', logoutResponse.data.message);
}
} catch (error) {
console.error('测试过程中发生错误:', error.response ? error.response.data : error.message);
}
}
// 运行测试
console.log('准备运行退出登录功能测试...');
testLogout().then(() => {
console.log('\n退出登录功能测试完成');
});