8.6 KiB
Guide de Dépannage - Problèmes de Connexion
Problème : "Identifiant ou mot de passe incorrect"
Si vous ne parvenez pas à vous connecter avec l'utilisateur adminServFormation et le mot de passe Itinova69!, suivez ce guide étape par étape.
Diagnostic rapide
Étape 1 : Exécuter le script de diagnostic
cd /chemin/vers/formation-manager-itinova
./diagnose.sh
Ce script vérifie automatiquement :
- Les variables d'environnement (DATABASE_URL, JWT_SECRET)
- La connexion à la base de données
- L'existence des tables
- L'existence de l'utilisateur adminServFormation
- Les dépendances installées
- L'état du service
Solutions par cause
Cause 1 : JWT_SECRET non défini
Symptôme : Le diagnostic affiche JWT_SECRET n'est pas définie
Solution :
-
Générer une clé JWT sécurisée :
openssl rand -base64 32 -
Ajouter la clé dans le fichier
.env:echo "JWT_SECRET=votre_cle_generee_ici" >> .env -
Redémarrer l'application :
# Si vous utilisez systemd sudo systemctl restart formation-manager # Ou en développement pnpm dev
Cause 2 : L'utilisateur adminServFormation n'existe pas
Symptôme : Le diagnostic affiche Utilisateur 'adminServFormation' n'existe pas
Solution :
Exécuter le script de réinitialisation :
./reset-admin-sql.sh
Note : Utilisez reset-admin-sql.sh (version SQL directe) plutôt que reset-admin.sh pour éviter les problèmes de compilation TypeScript.
Ce script va :
- Vérifier la configuration
- Créer l'utilisateur adminServFormation s'il n'existe pas
- Réinitialiser le mot de passe s'il existe déjà
- Afficher les identifiants de connexion
Résultat attendu :
✅ Utilisateur créé avec succès
🔑 Vous pouvez maintenant vous connecter avec:
Identifiant: adminServFormation
Mot de passe: Itinova69!
Cause 3 : Les tables de la base de données n'existent pas
Symptôme : Le diagnostic affiche Aucune table trouvée dans la base de données
Solution :
-
Appliquer les migrations :
pnpm db:push -
Créer l'utilisateur administrateur :
./reset-admin-sql.sh -
Redémarrer l'application :
sudo systemctl restart formation-manager
Cause 4 : Problème de hashage du mot de passe
Symptôme : L'utilisateur existe mais le mot de passe ne fonctionne pas
Solution :
Réinitialiser le mot de passe :
./reset-admin-sql.sh
Le script va détecter que l'utilisateur existe et mettre à jour uniquement le mot de passe.
Cause 5 : La dépendance bcryptjs n'est pas installée
Symptôme : Erreur dans les logs : Cannot find module 'bcryptjs'
Solution :
-
Réinstaller les dépendances :
pnpm install -
Vérifier que bcryptjs est installé :
ls node_modules/bcryptjs -
Redémarrer l'application :
sudo systemctl restart formation-manager
Cause 6 : La dépendance jsonwebtoken n'est pas installée
Symptôme : Erreur dans les logs : Cannot find module 'jsonwebtoken'
Solution :
-
Installer jsonwebtoken :
pnpm install jsonwebtoken -
Redémarrer l'application :
sudo systemctl restart formation-manager
Vérification manuelle de la base de données
Si les scripts ne fonctionnent pas, vous pouvez vérifier manuellement la base de données.
1. Se connecter à MySQL
mysql -u root -p
2. Sélectionner la base de données
USE formation_manager;
3. Vérifier que la table users existe
SHOW TABLES;
Vous devriez voir users dans la liste.
4. Vérifier l'utilisateur adminServFormation
SELECT username, email, role, isActive, password FROM users WHERE username = 'adminServFormation';
Résultat attendu :
+--------------------+------------------------+-------+----------+--------------------------------------------------------------+
| username | email | role | isActive | password |
+--------------------+------------------------+-------+----------+--------------------------------------------------------------+
| adminServFormation | admin@formation.local | admin | 1 | $2a$10$... (hash bcrypt) |
+--------------------+------------------------+-------+----------+--------------------------------------------------------------+
5. Si l'utilisateur n'existe pas, le créer manuellement
-- Générer un hash bcrypt pour "Itinova69!"
-- Utiliser le script reset-admin.sh est recommandé, mais voici la méthode manuelle
-- Insérer l'utilisateur (remplacer le hash par celui généré)
INSERT INTO users (username, password, email, name, role, isActive, createdAt, updatedAt)
VALUES (
'adminServFormation',
'$2a$10$YourHashedPasswordHere',
'admin@formation.local',
'Administrateur',
'admin',
1,
NOW(),
NOW()
);
Note : Il est fortement recommandé d'utiliser le script reset-admin.sh plutôt que de créer l'utilisateur manuellement.
Vérification des logs
Logs de l'application (systemd)
sudo journalctl -u formation-manager -n 100 --no-pager
Recherchez les erreurs liées à :
JWT_SECRETbcryptjsjsonwebtokenDatabase connection
Logs de l'application (développement)
Si vous exécutez l'application avec pnpm dev, les logs s'affichent directement dans le terminal.
Recherchez les messages d'erreur lors de la tentative de connexion.
Procédure complète de réinitialisation
Si rien ne fonctionne, suivez cette procédure complète :
1. Vérifier la configuration
cd /chemin/vers/formation-manager-itinova
cat .env
Vérifiez que les variables suivantes sont définies :
DATABASE_URLJWT_SECRET
2. Vérifier la connexion à la base de données
mysql -h localhost -u votre_utilisateur -p formation_manager -e "SELECT 1;"
3. Réinstaller les dépendances
rm -rf node_modules
pnpm install
4. Réinitialiser la base de données (⚠️ ATTENTION : supprime toutes les données)
# Sauvegarder d'abord
mysqldump -u root -p formation_manager > backup_avant_reset.sql
# Recréer la base de données
mysql -u root -p -e "DROP DATABASE IF EXISTS formation_manager;"
mysql -u root -p -e "CREATE DATABASE formation_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Appliquer les migrations
pnpm db:push
5. Créer l'utilisateur administrateur
./reset-admin.sh
6. Redémarrer l'application
sudo systemctl restart formation-manager
7. Tester la connexion
Ouvrir http://votre-domaine.com et se connecter avec :
- Identifiant : adminServFormation
- Mot de passe : Itinova69!
Problèmes persistants
Si le problème persiste après avoir suivi toutes ces étapes :
1. Vérifier les permissions des fichiers
# Corriger les permissions
sudo chown -R votre_utilisateur:votre_groupe /chemin/vers/formation-manager-itinova
chmod -R 755 /chemin/vers/formation-manager-itinova
2. Vérifier la version de Node.js
node -v
Version requise : 22.13.0 ou supérieure
Si la version est inférieure :
# Installer Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
3. Vérifier la version de MySQL
mysql --version
Version requise : MySQL 8.0+ ou MariaDB 10.6+
4. Activer les logs de débogage
Ajouter dans .env :
DEBUG=*
NODE_ENV=development
Redémarrer et consulter les logs détaillés.
Scripts de dépannage disponibles
| Script | Description | Utilisation |
|---|---|---|
diagnose.sh |
Diagnostic complet de la configuration | ./diagnose.sh |
reset-admin-sql.sh |
Réinitialisation de l'utilisateur admin | ./reset-admin-sql.sh |
deploy.sh |
Déploiement complet avec sauvegarde | ./deploy.sh |
Contacts et support
Si vous avez suivi toutes les étapes et que le problème persiste :
-
Exécuter le diagnostic complet :
./diagnose.sh > diagnostic_$(date +%Y%m%d_%H%M%S).txt -
Récupérer les logs :
sudo journalctl -u formation-manager -n 200 > logs_$(date +%Y%m%d_%H%M%S).txt -
Contacter l'équipe de développement avec :
- Le fichier de diagnostic
- Les logs de l'application
- La description détaillée du problème
Dernière mise à jour : 23 novembre 2025