/** * 测试真实微信登录流程 * 验证修复后的wxLogin接口是否能正确处理真实微信code */ async function testRealWechatLogin() { // 动态导入 node-fetch const { default: fetch } = await import('node-fetch'); console.log('=== 测试真实微信登录流程 ==='); console.log('测试时间:', new Date().toLocaleString()); const graphqlUrl = 'http://localhost:8080/api/graphql'; // 模拟一个真实的微信code(实际使用时应该从小程序端获取) const testCode = 'real_wechat_code_from_miniprogram'; const mutation = ` mutation { wxLogin(input: { code: "${testCode}" loginIp: "192.168.1.100" deviceInfo: "iPhone 13 Pro" phoneAuthorized: false }) { token userInfo { userId name userType } isNewUser loginRecordId sessionKey } } `; try { console.log('步骤1: 发送wxLogin请求'); console.log('- GraphQL端点:', graphqlUrl); console.log('- 使用code:', testCode); console.log('- 测试模式: false (应该调用真实微信API)'); const response = await fetch(graphqlUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ query: mutation }) }); const result = await response.json(); console.log('\n步骤2: 分析响应结果'); console.log('HTTP状态码:', response.status); if (result.errors) { console.log('❌ GraphQL错误:'); result.errors.forEach((error, index) => { console.log(` ${index + 1}. ${error.message}`); if (error.extensions) { console.log(` 分类: ${error.extensions.classification}`); } }); // 检查是否是微信API相关的错误 const wechatApiError = result.errors.find(error => error.message.includes('微信API') || error.message.includes('AppSecret') || error.message.includes('code2session') ); if (wechatApiError) { console.log('\n🔍 检测到微信API相关错误:'); console.log('这表明系统正在尝试调用真实的微信API,而不是返回测试数据'); console.log('错误原因可能是:'); console.log('1. 使用的code不是真实的微信登录code'); console.log('2. 微信小程序配置(AppID/AppSecret)需要验证'); console.log('3. 网络连接问题'); console.log('\n✅ 修复验证: test-mode已成功设置为false'); console.log('系统现在会调用真实的微信API而不是返回测试数据'); } } else { console.log('✅ 请求成功'); console.log('响应数据:', JSON.stringify(result.data, null, 2)); const wxLoginData = result.data.wxLogin; if (wxLoginData) { console.log('\n📊 登录结果分析:'); console.log('- Token存在:', !!wxLoginData.token); console.log('- 用户ID:', wxLoginData.userInfo?.userId); console.log('- 是否新用户:', wxLoginData.isNewUser); console.log('- 登录记录ID:', wxLoginData.loginRecordId); console.log('- SessionKey存在:', !!wxLoginData.sessionKey); console.log('- SessionKey长度:', wxLoginData.sessionKey?.length || 0); // 检查sessionKey是否是测试数据 if (wxLoginData.sessionKey && wxLoginData.sessionKey.startsWith('test_session_key_')) { console.log('⚠️ 警告: SessionKey仍然是测试数据'); console.log('这表明test-mode可能仍然为true,或者配置未生效'); } else if (wxLoginData.sessionKey) { console.log('✅ SessionKey看起来是真实数据(不是test_开头)'); } } } } catch (error) { console.log('❌ 请求异常:', error.message); console.log('错误详情:', error); } console.log('\n=== 测试完成 ==='); console.log('下一步: 如果看到微信API相关错误,说明修复成功'); console.log('需要使用真实的微信小程序登录code进行最终测试'); } // 运行测试 testRealWechatLogin().catch(console.error);