Files
SkillMate/.cleanup-backup/test-login-direct.js
Claude Project Manager 6b9b6d4f20 Initial commit
2025-09-20 21:31:04 +02:00

68 Zeilen
2.2 KiB
JavaScript

const express = require('express');
const Database = require('better-sqlite3');
const bcryptjs = require('bcryptjs');
const crypto = require('crypto');
const path = require('path');
const app = express();
app.use(express.json());
// Hash function for email
function hashEmail(email) {
if (!email) return null;
return crypto.createHash('sha256').update(email.toLowerCase()).digest('hex');
}
// Test login endpoint
app.post('/test-login', async (req, res) => {
try {
const { username, password } = req.body;
console.log('=== TEST LOGIN ===');
console.log('Username:', username);
console.log('Password:', password);
const dbPath = path.join(__dirname, 'skillmate.dev.db');
const db = new Database(dbPath);
// Find user by username
const userRow = db.prepare(`
SELECT id, username, email, password, role, employee_id, last_login, is_active, created_at, updated_at, email_hash
FROM users
WHERE username = ? AND is_active = 1
`).get(username);
console.log('User found:', !!userRow);
if (userRow) {
console.log('User details:', {
id: userRow.id,
username: userRow.username,
email_hash: userRow.email_hash,
is_active: userRow.is_active,
password_hash: userRow.password ? userRow.password.substring(0, 20) + '...' : null
});
// Check password
const isValidPassword = await bcryptjs.compare(password, userRow.password);
console.log('Password valid:', isValidPassword);
if (isValidPassword) {
res.json({ success: true, message: 'Login successful!', user: { id: userRow.id, username: userRow.username } });
} else {
res.json({ success: false, message: 'Invalid password' });
}
} else {
res.json({ success: false, message: 'User not found' });
}
db.close();
} catch (error) {
console.error('Test login error:', error);
res.status(500).json({ success: false, error: error.message });
}
});
app.listen(3005, () => {
console.log('Test server running on port 3005');
console.log('Test with: curl -X POST http://localhost:3005/test-login -H "Content-Type: application/json" -d "{\\"username\\":\\"admin\\",\\"password\\":\\"admin123\\"}"');
});