Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

API UNTUK PENGGUNA DENGAN HAK AKSES BERBEDA DI NODE.JS

Pelajari cara membuat API di Node.js untuk mengelola pengguna dengan hak akses berbeda menggunakan middleware dan JWT.

Dalam pengembangan aplikasi, kadang kita perlu memberikan hak akses berbeda kepada pengguna. Pada Node.js, kamu bisa melakukannya dengan menggunakan beberapa teknik sederhana seperti middleware dan JSON Web Token (JWT).

Mengatur Hak Akses

Untuk mengatur hak akses, kita bisa menggunakan middleware. Middleware ini akan memeriksa permintaan sebelum diteruskan ke route handler. Berikut adalah langkah-langkah dasar untuk melakukannya:

  1. Buat Peran (Roles) untuk Pengguna: Tentukan peran apa saja yang ada dalam aplikasi, misalnya admin, editor, dan user. Simpan data ini dalam database.

  2. Implementasikan Middleware: Middleware dapat memeriksa peran pengguna dan menentukan apakah dia punya akses ke route tertentu.

    function authorize(roles = []) {
      // roles param bisa berupa string atau array
      if (typeof roles === 'string') {
        roles = [roles];
      }
    
      return (req, res, next) => {
        if (!roles.includes(req.user.role)) {
          // jika role pengguna tidak sesuai, kembalikan respon error
          return res.status(401).json({ message: 'Access Denied' });
        }
        // jika role sesuai, lanjutkan ke handler berikutnya
        next();
      };
    }
  3. Menggunakan Middleware di Route: Terapkan middleware ini di route yang memerlukan hak akses khusus.

    app.get('/admin', authorize('admin'), (req, res) => {
      res.send('Welcome admin!');
    });

Autentikasi Menggunakan JWT

JSON Web Token (JWT) juga penting dalam mengelola sesi pengguna. Biasanya JWT digunakan untuk mengecek identitas pengguna dalam setiap permintaan HTTP.

Membuat dan Menggunakan JWT

  1. Instalasi Paket: Gunakan paket bernama jsonwebtoken untuk membuat dan memverifikasi token.

    npm install jsonwebtoken
  2. Membuat Token: Saat pengguna login, buat token dengan data pengguna.

    const jwt = require('jsonwebtoken');
    const token = jwt.sign({ id: user.id, role: user.role }, 'secretKey', { expiresIn: '1h' });
  3. Memverifikasi Token: Gunakan middleware untuk memverifikasi token pada permintaan yang datang.

    function authenticateJWT(req, res, next) {
      const token = req.header('Authorization');
      if (!token) return res.status(403).send('Token is missing.');
    
      jwt.verify(token, 'secretKey', (err, user) => {
        if (err) return res.status(403).send('Token is not valid.');
        req.user = user;
        next();
      });
    }
  4. Menggunakan Middleware Autentikasi:

    Terapkan middleware ini di route yang membutuhkan identifikasi pengguna.

    app.get('/dashboard', authenticateJWT, (req, res) => {
      res.send('Dashboard data');
    });

Dengan pendekatan ini, aplikasi kamu dapat memberikan akses yang tepat kepada pengguna berdasarkan perannya, serta menjamin keamanan dan identitas dengan menggunakan JWT.


Daftar newsletter skodev masukkan emailmu untuk dapat informasi menarik dari dunia koding