Correction auth sqlite
This commit is contained in:
parent
7754459ae3
commit
abecd1843d
@ -15,6 +15,18 @@ const chokidar = require('chokidar');
|
||||
|
||||
db.testConnection(); // vérification au démarrage
|
||||
|
||||
// Vérification et création du dossier sessions si nécessaire
|
||||
const sessionPath = path.resolve(__dirname, config.sessionStorePath || './sessions');
|
||||
if (!fs.existsSync(sessionPath)) {
|
||||
console.log(`[SESSION] Création du dossier sessions: ${sessionPath}`);
|
||||
fs.mkdirSync(sessionPath, { recursive: true });
|
||||
}
|
||||
|
||||
// Vérification de la configuration de session
|
||||
if (!config.sessionSecret || config.sessionSecret === 'Voir commande ci dessus') {
|
||||
console.warn('[SESSION] ⚠️ ATTENTION: sessionSecret non configuré ! Utilisez: curl -L pw.vdx.sh/w/32');
|
||||
}
|
||||
|
||||
function resolveTrustProxy(v) {
|
||||
if (v == null) return 0;
|
||||
if (v === true || v === 'true' || v === 'all') return true;
|
||||
@ -251,44 +263,54 @@ autopostRouter.post('/login', async (req, res) => {
|
||||
console.log(`[LOGIN] Tentative de connexion pour "${username}"`);
|
||||
console.log(`[LOGIN] Password reçu: longueur ${password ? password.length : 0} caractères`);
|
||||
|
||||
// 1. Essayer d'abord l'authentification via la base de données
|
||||
try {
|
||||
console.log(`[LOGIN] Tentative d'authentification DB pour "${username}"`);
|
||||
const [rows] = await db.query(
|
||||
'SELECT * FROM core_members WHERE name = ? AND member_group_id IN (1,2) LIMIT 1',
|
||||
[username]
|
||||
);
|
||||
// 1. Essayer d'abord l'authentification via la base de données (uniquement si MySQL)
|
||||
if (config.dbtype === 'mysql') {
|
||||
try {
|
||||
console.log(`[LOGIN] Tentative d'authentification DB MySQL pour "${username}"`);
|
||||
const [rows] = await db.query(
|
||||
'SELECT * FROM core_members WHERE name = ? AND member_group_id IN (1,2) LIMIT 1',
|
||||
[username]
|
||||
);
|
||||
|
||||
console.log(`[LOGIN] Nombre de résultats DB: ${rows.length}`);
|
||||
console.log(`[LOGIN] Nombre de résultats DB: ${rows.length}`);
|
||||
|
||||
if (rows.length > 0) {
|
||||
const member = rows[0];
|
||||
console.log(`[LOGIN] Utilisateur trouvé en DB:`, {
|
||||
member_id: member.member_id,
|
||||
name: member.name,
|
||||
group: member.member_group_id
|
||||
});
|
||||
if (rows.length > 0) {
|
||||
const member = rows[0];
|
||||
console.log(`[LOGIN] Utilisateur trouvé en DB:`, {
|
||||
member_id: member.member_id,
|
||||
name: member.name,
|
||||
group: member.member_group_id
|
||||
});
|
||||
|
||||
// Vérification du hash Argon2id
|
||||
console.log(`[LOGIN] Vérification du mot de passe avec Argon2id`);
|
||||
const valid = await argon2.verify(member.members_pass_hash, password);
|
||||
console.log(`[LOGIN] Résultat vérification Argon2id: ${valid}`);
|
||||
// Vérification du hash Argon2id
|
||||
console.log(`[LOGIN] Vérification du mot de passe avec Argon2id`);
|
||||
const valid = await argon2.verify(member.members_pass_hash, password);
|
||||
console.log(`[LOGIN] Résultat vérification Argon2id: ${valid}`);
|
||||
|
||||
if (valid) {
|
||||
console.log(`[LOGIN] ✅ Authentification DB réussie pour "${member.name}"`);
|
||||
req.session.authenticated = true;
|
||||
req.session.user_id = member.member_id;
|
||||
req.session.user_name = member.name;
|
||||
return res.redirect('/autopost');
|
||||
if (valid) {
|
||||
console.log(`[LOGIN] ✅ Authentification DB réussie pour "${member.name}"`);
|
||||
req.session.authenticated = true;
|
||||
req.session.user_id = member.member_id;
|
||||
req.session.user_name = member.name;
|
||||
return req.session.save((err) => {
|
||||
if (err) {
|
||||
console.error(`[LOGIN] Erreur sauvegarde session:`, err);
|
||||
return res.redirect('login?e=1');
|
||||
}
|
||||
res.redirect('/autopost');
|
||||
});
|
||||
} else {
|
||||
console.warn(`[LOGIN] ❌ Mot de passe DB incorrect pour "${member.name}"`);
|
||||
}
|
||||
} else {
|
||||
console.warn(`[LOGIN] ❌ Mot de passe DB incorrect pour "${member.name}"`);
|
||||
console.log(`[LOGIN] Aucun utilisateur trouvé en DB pour "${username}"`);
|
||||
}
|
||||
} else {
|
||||
console.log(`[LOGIN] Aucun utilisateur trouvé en DB pour "${username}"`);
|
||||
} catch (err) {
|
||||
console.error(`[LOGIN] Erreur DB MySQL:`, err);
|
||||
// Continue vers le fallback config
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`[LOGIN] Erreur DB:`, err);
|
||||
// Continue vers le fallback config
|
||||
} else {
|
||||
console.log(`[LOGIN] Mode SQLite détecté, authentification DB IPB désactivée`);
|
||||
}
|
||||
|
||||
// 2. Fallback : authentification via fichier config
|
||||
@ -297,7 +319,16 @@ autopostRouter.post('/login', async (req, res) => {
|
||||
console.log(`[LOGIN] ✅ Authentification config réussie pour "${username}"`);
|
||||
req.session.authenticated = true;
|
||||
req.session.user_name = username;
|
||||
return res.redirect('/autopost');
|
||||
console.log(`[LOGIN] Session ID: ${req.sessionID}`);
|
||||
console.log(`[LOGIN] Session avant save:`, { authenticated: req.session.authenticated, user_name: req.session.user_name });
|
||||
return req.session.save((err) => {
|
||||
if (err) {
|
||||
console.error(`[LOGIN] ❌ Erreur sauvegarde session:`, err);
|
||||
return res.redirect('login?e=1');
|
||||
}
|
||||
console.log(`[LOGIN] ✅ Session sauvegardée avec succès`);
|
||||
res.redirect('/autopost');
|
||||
});
|
||||
} else {
|
||||
console.log(`[LOGIN] ❌ Authentification config échouée pour "${username}"`);
|
||||
}
|
||||
@ -332,9 +363,14 @@ autopostRouter.get('/favicon.ico', (req, res) => {
|
||||
});
|
||||
|
||||
function checkAuth(req, res, next) {
|
||||
console.log(`[AUTH] Vérification session pour ${req.method} ${req.path}`);
|
||||
console.log(`[AUTH] Session ID: ${req.sessionID}`);
|
||||
console.log(`[AUTH] Session:`, { authenticated: req.session?.authenticated, user_name: req.session?.user_name });
|
||||
if (req.session && req.session.authenticated) {
|
||||
console.log(`[AUTH] ✅ Accès autorisé`);
|
||||
next();
|
||||
} else {
|
||||
console.log(`[AUTH] ❌ Accès refusé, redirection vers login`);
|
||||
res.redirect(req.baseUrl + '/login');
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user