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.
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.