Component: Formulários — goUI

Formulários

Form com CSRF e validação client/server-side.

Form com proteção CSRF

Token assinado via HMAC-SHA256, armazenado em cookie HttpOnly e comparado com o campo _csrf no POST.

go
// GET handler:
token := components.NewCSRFToken(w)

// Função de página:
components.Form("/submit", "POST",
    components.CSRF(token),
    components.FormField("Nome", components.Input(components.Name("nome")), ""),
    components.Button("Enviar"),
)

// POST handler:
if !components.ValidateCSRF(r) {
    http.Error(w, "CSRF inválido", 403)
    return
}

// Configurar segredo (chamar uma vez no main):
components.SetCSRFSecret("meu-segredo-aleatorio-de-32-bytes")

Demo ao vivo: