Baca Juga: Cara Mengamankan HTTP Request API di Node JS
Salah satu cara untuk mengamankan API adalah dengan mengenkripsi atau mengautentikasikan nya sehingga hanya bisa diakses oleh pengguna dengan syarat tertentu. Pada artikel kali ini, saya akan menjelaskan tentang cara mengamankan API di server web. Tentunya bermacam-macam, tapi sesuai judul, saya akan mengkhususkan untuk web berbasis node js dengan api bertipe json. Secara keseluruhan, sistem untuk mengautentikasikan API terbilang sama saja dengan artikel ini. Yang beda adalah di penerapan bahasa pemrogramannya.
LOGO JWT |
Json Web Token (JWT)
JWT adalah cara autentikasi terbaik yang sudah diterapkan di jutaan web di seluruh dunia. JWT akan menampilkan data json yang diinginkan dengan melakukan verifikasi token sebelumnya. Jadi, setiap me-load halaman api, halaman akan meminta token yang ada di header request. Kemudian token dicek, jika jwt menghasilkan nilai true barulah halaman ditampilkan.
Contoh token JWT:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c
JWT memiliki 3 data utama. Yakni:
1. Header
yang berisi jenis algoritma atau tipe token yang ingin digunakan
2. Payload
yaitu data yang disisipkan. Nantinya data ini sebagai response yang dikeluarkan jika verifikasi token berhasil
3. Verify Signature
yaitu kode verifikasi untuk data JWT yang diterima
Contoh Implementasi JWT di Node JS
Definietly, saya akan mencontohkan cara menggunakan json web token di node js dengan framework express js. Berikut contohnya
Install package Json Web Token
npm i jsonwebtoken
const jwt = require('jsonwebtoken')
Membuat token jwt
Untuk membuat token jwt, kita menggunakan function sign() dari jwt.
var token = jwt.sign({ name: 'Budi Susanto' }, 'r4HaS1a', {
expiresIn: 86400 // token kadaluwarsa selama 24 jam
})
// hasil: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InRlZ2FyIiwiaWF0IjoxNTcxNzM3NzkxLCJleHAiOjE1NzE4MjQxOTF9.wgzBBXZmtsx4ONJSgCNJet60zQPPOJ8DhzKLT3dPJvM
Mengautentikasi halaman sebelum menampilkan API JSON dengan JWT
Misal, halaman meminta API dengan mengirim request POST.
app.post('/post', (req,res)=>{
res.setHeader('sebuah-header-token', token) // Set header dari data token yang sudah di-sign()
// ... Data Post Request ...
})
Untuk verifikasi token di halaman apinya, berikut ini contoh script beserta penjelasannya.
v
var token = req.header('sebuah-header-token') // Header yang dibuat untuk mengirim token
jwt.verify(token, 'r4HaS1a', function(err, decoded) {
if (err) return res.status(500).send({ auth: false, message: 'Gagal autentikasi token.' });
else res.status(200).send(decoded);
})
Oke, itulah cara autentikasi API dengan token menggunakan JWT. Jika masih ada bagian yang kurang jelas, silahkan tanya di kolom komentar:) Semoga artikel ini bermanfaat! Terima kasih!
No comments:
Post a Comment
Komentar yang bermutu Insyaallah akan mendapatkan berkah