Initial commit

This commit is contained in:
2026-06-11 02:31:09 +00:00
commit 9a2dc3c2cf
6706 changed files with 440580 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
const jwt = require('jsonwebtoken');
// Menjaga rute spesifik agar hanya dapat diakses dengan token yang valid
const verify_token = (req, res, next) => {
try {
const auth_header = req.headers['authorization'];
// Praktik keamanan: Memastikan header ada dan memisahkan kata 'Bearer ' dari token utamanya
const token = auth_header && auth_header.split(' ')[1];
if (!token) {
return res.status(401).json({ error: 'Akses ditolak: Token tidak ditemukan' });
}
// Baris kompleks: jwt.verify() mendekripsi token menggunakan kunci rahasia yang sama dengan saat pembuatan. Jika kunci cocok dan token belum kedaluwarsa, ia akan mengembalikan data payload (decoded), jika tidak, ia akan melempar error (termasuk jika token dipalsukan).
jwt.verify(token, 'kunci_rahasia_webgis_pontianak', (err, decoded_data) => {
if (err) {
return res.status(403).json({ error: 'Sesi tidak valid atau telah berakhir' });
}
req.admin_terotentikasi = decoded_data;
next();
});
} catch (error) {
console.error('Kesalahan verifikasi keamanan:', error);
res.status(500).json({ error: 'Kesalahan internal saat memverifikasi sesi' });
}
};
module.exports = {
verify_token
};