Files
UAS-SIG/seeders/seed_admin.js
T
2026-06-03 20:05:50 +07:00

32 lines
1.4 KiB
JavaScript

const bcrypt = require('bcrypt');
const db = require('../config/database');
// Menggenerasikan data akun administrator baru dengan pengacakan kata sandi aman
async function buat_akun_admin_seeder() {
const username_admin = 'admin_dinsos';
const password_murni = 'adminrahasia';
try {
// Baris kompleks: Kita menerapkan metode saltRounds sebesar 10 untuk menghasilkan nilai salt unik menggunakan bcrypt. Fungsi ini mengacak kata sandi murni menjadi string hash tak terbaca sebelum disimpan ke SQLite untuk mengantisipasi kebocoran database.
const salt_rounds = 10;
const password_terhash = await bcrypt.hash(password_murni, salt_rounds);
const kueri_insert = `INSERT INTO ADMIN (username, password) VALUES (?, ?)`;
db.run(kueri_insert, [username_admin, password_terhash], function(error_sql) {
if (error_sql) {
console.error('Gagal menyisipkan akun admin:', error_sql.message);
process.exit(1);
}
console.log(`Akun admin berhasil dibuat! Username: ${username_admin}`);
process.exit(0);
});
} catch (error_sistem) {
console.error('Terjadi kegagalan enkripsi internal:', error_sistem.message);
process.exit(1);
}
}
// Menjalankan fungsi seeder otomatis saat berkas dieksekusi di terminal
buat_akun_admin_seeder();