MIDDLEWARE
Cơ bản
CA 02 / 08
Một dòng return chặn cả thảm hoạ
Middleware kiểm tra đăng nhập bọc quanh mọi route admin của một blog:
func requireLogin(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if !loggedIn(r) {
http.Redirect(w, r, "/login", 303)
return // ← để ý dòng này
}
next.ServeHTTP(w, r) // chỉ tới đây nếu đã đăng nhập
})
}
❯ Khách VÃNG LAI (chưa đăng nhập) gọi thẳng /admin/delete-everything. Handler xoá thật có được chạy không?