68 Zeilen
2.2 KiB
JavaScript
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\\"}"');
|
|
}); |