Study
Echo

JWT Authentication Dasar

Penjelasan

JWT (JSON Web Token) adalah cara umum melindungi REST API — client mengirim token di header Authorization, Echo menyediakan middleware echojwt yang otomatis memvalidasi token itu SEBELUM request sampai ke handler, menolak dengan 401 kalau token tidak valid/tidak ada.

Contoh Konsep

// go get github.com/labstack/echo-jwt/v4
import echojwt "github.com/labstack/echo-jwt/v4"

dashboardGroup := e.Group("/dashboard")
dashboardGroup.Use(echojwt.JWT([]byte("kunci-rahasia")))

dashboardGroup.GET("", func(c echo.Context) error {
	return c.String(http.StatusOK, "Selamat datang di dashboard")
})

// Membuat token (biasa di endpoint login):
// token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{"user": "budi"})
// signed, _ := token.SignedString([]byte("kunci-rahasia"))

Praktikum

Buat e.Group("/admin") dengan middleware echojwt.JWT() memakai kunci rahasia "rahasia-admin". Tulis satu route GET "" di dalamnya yang cuma bisa diakses dengan token valid.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kunci rahasia untuk sign/verify JWT JANGAN PERNAH ditulis langsung di kode (hardcoded) seperti contoh di atas — di project sungguhan, WAJIB dibaca dari environment variable, karena siapa pun yang bisa membaca source code juga bisa memalsukan token kalau kuncinya ikut ter-commit.