0Pricing
Node.js Backend Development Bootcamp · Pelajaran

Middleware Autentikasi dengan JWT

Bangun autentikasi yang aman ke dalam aplikasi Express Anda menggunakan JSON Web Token, lalu pelajari cara melindungi rute dengan middleware autentikasi khusus.

Middleware Autentikasi dengan JWT adalah pelajaran Node.js Backend Development Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Node.js Backend Development Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Node.js Backend Development Bootcamp mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why Tokens?

HTTP is stateless: the server forgets you between requests. To know who is making a request, the client sends proof of identity each time.

JSON Web Tokens (JWT) are a popular, stateless way to carry that proof without storing sessions on the server.

Anatomy of a JWT

A JWT is three Base64 sections separated by dots:

  • Header: the signing algorithm
  • Payload: claims like user id and role
  • Signature: verifies the token was not tampered with

The payload is encoded, not encrypted — never put secrets in it.

// xxxxx.yyyyy.zzzzz
// header.payload.signature

Installing jsonwebtoken

The jsonwebtoken package handles creating and verifying tokens.

// npm install jsonwebtoken
const jwt = require('jsonwebtoken');

Signing a Token on Login

After verifying a user's credentials, call jwt.sign() with the payload, a secret, and options like expiry. Send the resulting token back to the client.

const token = jwt.sign(
  { userId: user.id, role: user.role },
  process.env.JWT_SECRET,
  { expiresIn: '1h' }
);
res.json({ token });

Sending the Token

The client stores the token and sends it back on each request, usually in the Authorization header using the Bearer scheme.

// Authorization: Bearer eyJhbGci...

Reading the Token in Middleware

Auth middleware extracts the token from the header. Split off the Bearer prefix to get the raw token string.

function auth(req, res, next) {
  const header = req.get('Authorization') || '';
  const token = header.split(' ')[1];
  // verify next...
}

Verifying the Token

jwt.verify() checks the signature and expiry. If valid it returns the decoded payload; if not it throws, so wrap it in try/catch.

try {
  const payload = jwt.verify(token, process.env.JWT_SECRET);
  req.user = payload;
  next();
} catch (err) {
  res.status(401).json({ error: 'Invalid token' });
}

Complete Auth Middleware

Putting it together, this middleware rejects missing or invalid tokens and attaches the user to the request for downstream handlers.

function auth(req, res, next) {
  const token = (req.get('Authorization') || '').split(' ')[1];
  if (!token) return res.status(401).json({ error: 'No token' });
  try {
    req.user = jwt.verify(token, process.env.JWT_SECRET);
    next();
  } catch {
    res.status(401).json({ error: 'Invalid token' });
  }
}

Protecting Routes

Apply the middleware to any route that requires login. Express runs it before the handler, blocking unauthenticated requests automatically.

app.get('/profile', auth, (req, res) => {
  res.json({ id: req.user.userId });
});

Role-Based Authorization

Authentication answers "who are you?"; authorization answers "are you allowed?". A second middleware can check req.user.role set by the auth step.

function requireAdmin(req, res, next) {
  if (req.user.role !== 'admin') {
    return res.status(403).json({ error: 'Forbidden' });
  }
  next();
}
app.delete('/users/:id', auth, requireAdmin, handler);

Security Best Practices

Keep tokens safe:

  • Store the secret in an environment variable, never in code
  • Use short expiry times and refresh tokens for longer sessions
  • Always serve over HTTPS
  • Return 401 for missing/invalid auth, 403 for insufficient permissions

Quick Check

Test your understanding of JWT auth.

Recap

You built stateless authentication with JWT:

  • Sign a token on login with jwt.sign()
  • Send it via the Authorization: Bearer header
  • Verify it in custom middleware with jwt.verify()
  • Attach req.user and protect routes
  • Add role checks for authorization

This is the foundation of secure Express APIs.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Middleware Autentikasi dengan JWT” gratis?

Ya — teks lengkap “Middleware Autentikasi dengan JWT” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Node.js Backend Development Bootcamp, upgrade ke CoddyKit PRO. Kursus Node.js Backend Development Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Middleware Autentikasi dengan JWT”?

Bangun autentikasi yang aman ke dalam aplikasi Express Anda menggunakan JSON Web Token, lalu pelajari cara melindungi rute dengan middleware autentikasi khusus. Kamu berlatih Node.js Backend Development Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Node.js Backend Development Bootcamp?

Tidak diperlukan pengalaman sebelumnya. Node.js Backend Development Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Middleware Autentikasi dengan JWT” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Node.js Backend Development Bootcamp ini?

Ya. Setiap pelajaran Node.js Backend Development Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengembangkan Middleware Express Khusus
  2. Strategi Penanganan Galat Global
  3. Validasi Masukan dengan Joi/Express-Validator
  4. Middleware Autentikasi dengan JWT
← Kembali ke Node.js Backend Development Bootcamp