const axios = require('axios');
|
|
const BASE_URL = 'http://localhost:8080';
|
const WX_CODE = '0b3ycd0w32tGL53puK1w3ho1Hv2ycd0R' // 用户提供的真实微信code
|
|
async function testWxLogin() {
|
console.log('=== 测试微信登录和匿名用户访问 ===\n');
|
|
try {
|
// 1. 使用真实微信code进行登录
|
console.log('1. 使用真实微信code进行登录');
|
console.log('微信code:', WX_CODE);
|
|
const loginResponse = await axios.post(`${BASE_URL}/api/auth/wx-login`, {
|
code: WX_CODE,
|
loginIp: '127.0.0.1',
|
deviceInfo: 'test-device',
|
phoneAuthorized: false
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
});
|
|
console.log('微信登录响应状态:', loginResponse.status);
|
console.log('微信登录响应数据:', JSON.stringify(loginResponse.data, null, 2));
|
|
if (loginResponse.data && loginResponse.data.token) {
|
const anonymousToken = loginResponse.data.token;
|
console.log('\n✅ 成功获取到token:', anonymousToken.substring(0, 50) + '...');
|
|
// 2. 使用获取到的token访问userProfile
|
console.log('\n2. 使用token访问userProfile');
|
const userProfileQuery = `
|
query {
|
userProfile {
|
id
|
name
|
phone
|
userType
|
roles
|
}
|
}
|
`;
|
|
const graphqlResponse = await axios.post(`${BASE_URL}/api/graphql`, {
|
query: userProfileQuery
|
}, {
|
headers: {
|
'Authorization': `Bearer ${anonymousToken}`,
|
'Content-Type': 'application/json'
|
}
|
});
|
|
console.log('GraphQL响应状态:', graphqlResponse.status);
|
console.log('GraphQL响应数据:', JSON.stringify(graphqlResponse.data, null, 2));
|
|
// 3. 测试访问需要权限的接口(应该失败)
|
console.log('\n3. 测试匿名用户访问需要员工权限的接口(应该失败)');
|
const employeeQuery = `
|
query {
|
employeeReviewStats(keyword: "") {
|
pendingCount
|
approvedCount
|
rejectedCount
|
}
|
}
|
`;
|
|
try {
|
const employeeResponse = await axios.post(`${BASE_URL}/api/graphql`, {
|
query: employeeQuery
|
}, {
|
headers: {
|
'Authorization': `Bearer ${anonymousToken}`,
|
'Content-Type': 'application/json'
|
}
|
});
|
|
console.log('员工接口响应状态:', employeeResponse.status);
|
console.log('员工接口响应数据:', JSON.stringify(employeeResponse.data, null, 2));
|
} catch (error) {
|
console.log('员工接口访问失败(符合预期):', error.response?.status, error.response?.data || error.message);
|
}
|
|
} else {
|
console.log('❌ 登录失败,未获取到token');
|
}
|
|
} catch (error) {
|
console.error('❌ 测试过程中发生错误:');
|
console.error('状态码:', error.response?.status);
|
console.error('错误信息:', error.response?.data || error.message);
|
if (error.response?.data) {
|
console.error('详细错误:', JSON.stringify(error.response.data, null, 2));
|
}
|
}
|
}
|
|
// 运行测试
|
testWxLogin().then(() => {
|
console.log('\n=== 测试完成 ===');
|
}).catch(error => {
|
console.error('测试执行失败:', error);
|
});
|