完善保险端前后端和养殖端小程序
This commit is contained in:
95
insurance_backend/test-auth.js
Normal file
95
insurance_backend/test-auth.js
Normal file
@@ -0,0 +1,95 @@
|
||||
const { sequelize } = require('./config/database');
|
||||
const jwt = require('jsonwebtoken');
|
||||
require('dotenv').config();
|
||||
|
||||
// 测试数据库连接
|
||||
async function testDatabaseConnection() {
|
||||
try {
|
||||
console.log('\n=== 测试数据库连接 ===');
|
||||
console.log('使用配置:');
|
||||
console.log(`- 主机: ${process.env.DB_HOST || '默认值'}`);
|
||||
console.log(`- 端口: ${process.env.DB_PORT || '默认值'}`);
|
||||
console.log(`- 数据库: ${process.env.DB_DATABASE || process.env.DB_NAME || '默认值'}`);
|
||||
console.log(`- 用户名: ${process.env.DB_USER || '默认值'}`);
|
||||
console.log(`- 密码: ${process.env.DB_PASSWORD ? '已设置 (不显示)' : '未设置'}`);
|
||||
|
||||
await sequelize.authenticate();
|
||||
console.log('✅ 数据库连接成功!');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('❌ 数据库连接失败:', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 测试JWT配置
|
||||
function testJWTConfig() {
|
||||
try {
|
||||
console.log('\n=== 测试JWT配置 ===');
|
||||
console.log(`- JWT_SECRET: ${process.env.JWT_SECRET ? '已设置 (长度: ' + process.env.JWT_SECRET.length + ')' : '未设置'}`);
|
||||
console.log(`- JWT_EXPIRE: ${process.env.JWT_EXPIRE || '默认值'}`);
|
||||
|
||||
if (!process.env.JWT_SECRET) {
|
||||
console.error('❌ JWT_SECRET未设置!');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 尝试生成并验证令牌
|
||||
const testPayload = { test: 'data' };
|
||||
const token = jwt.sign(testPayload, process.env.JWT_SECRET, { expiresIn: '1h' });
|
||||
const decoded = jwt.verify(token, process.env.JWT_SECRET);
|
||||
|
||||
console.log('✅ JWT配置有效!');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('❌ JWT配置错误:', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 测试模型导入
|
||||
async function testModels() {
|
||||
try {
|
||||
console.log('\n=== 测试模型导入 ===');
|
||||
const { User, Role } = require('./models');
|
||||
console.log('✅ 用户模型导入成功');
|
||||
console.log('✅ 角色模型导入成功');
|
||||
|
||||
// 尝试查询用户表结构
|
||||
const userAttributes = User.rawAttributes;
|
||||
console.log(`✅ 用户表有 ${Object.keys(userAttributes).length} 个字段`);
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('❌ 模型导入错误:', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 运行所有测试
|
||||
async function runTests() {
|
||||
console.log('\n开始测试认证相关配置...');
|
||||
|
||||
const dbResult = await testDatabaseConnection();
|
||||
const jwtResult = testJWTConfig();
|
||||
const modelsResult = await testModels();
|
||||
|
||||
console.log('\n=== 测试总结 ===');
|
||||
console.log(`数据库连接: ${dbResult ? '通过' : '失败'}`);
|
||||
console.log(`JWT配置: ${jwtResult ? '通过' : '失败'}`);
|
||||
console.log(`模型导入: ${modelsResult ? '通过' : '失败'}`);
|
||||
|
||||
if (dbResult && jwtResult && modelsResult) {
|
||||
console.log('✅ 所有测试通过!');
|
||||
} else {
|
||||
console.error('❌ 测试失败,请检查上述错误!');
|
||||
}
|
||||
|
||||
// 关闭数据库连接
|
||||
await sequelize.close();
|
||||
}
|
||||
|
||||
// 运行测试
|
||||
runTests().catch(error => {
|
||||
console.error('测试过程中出现未捕获错误:', error);
|
||||
});
|
||||
Reference in New Issue
Block a user