69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
/**
|
|
* Générer un token JWT pour un admin
|
|
*/
|
|
|
|
import 'dotenv/config';
|
|
import jwt from 'jsonwebtoken';
|
|
import { pool } from '../db.js';
|
|
|
|
async function generateAdminToken() {
|
|
console.log('🔑 Génération d\'un token admin...\n');
|
|
|
|
try {
|
|
// Récupérer un admin
|
|
const result = await pool.query(`
|
|
SELECT id, email, role, first_name, last_name
|
|
FROM users
|
|
WHERE role = 'ADMIN'
|
|
LIMIT 1
|
|
`);
|
|
|
|
if (result.rows.length === 0) {
|
|
console.log('❌ Aucun utilisateur ADMIN trouvé dans la base de données');
|
|
console.log('\n💡 Créez d\'abord un admin avec:');
|
|
console.log(' node scripts/create-admin.js');
|
|
process.exit(1);
|
|
}
|
|
|
|
const admin = result.rows[0];
|
|
|
|
console.log('✅ Admin trouvé:');
|
|
console.log(` Email: ${admin.email}`);
|
|
console.log(` Nom: ${admin.first_name} ${admin.last_name}`);
|
|
console.log(` Role: ${admin.role}\n`);
|
|
|
|
// Générer le token
|
|
const token = jwt.sign(
|
|
{ userId: admin.id },
|
|
process.env.JWT_SECRET,
|
|
{ expiresIn: '7d' } // Token valide 7 jours
|
|
);
|
|
|
|
console.log('🎫 TOKEN GÉNÉRÉ:\n');
|
|
console.log(token);
|
|
console.log('\n');
|
|
|
|
console.log('📋 COMMENT UTILISER CE TOKEN:\n');
|
|
console.log('1. Ouvrir la console du navigateur (F12)');
|
|
console.log('2. Aller dans l\'onglet "Application" ou "Storage"');
|
|
console.log('3. Cliquer sur "Local Storage" > "http://localhost:3000"');
|
|
console.log('4. Modifier ou créer la clé "token" avec la valeur ci-dessus');
|
|
console.log('5. Rafraîchir la page (F5)');
|
|
console.log('\n✅ Vous serez connecté en tant qu\'admin!\n');
|
|
|
|
// Test du token
|
|
console.log('🧪 TEST DU TOKEN:\n');
|
|
const decoded = jwt.verify(token, process.env.JWT_SECRET);
|
|
console.log(' Décodé:', decoded);
|
|
console.log(' Expire dans: 7 jours');
|
|
console.log(' User ID:', decoded.userId);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Erreur:', error.message);
|
|
} finally {
|
|
await pool.end();
|
|
}
|
|
}
|
|
|
|
generateAdminToken();
|