diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-10-03 20:53:17 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-10-03 20:53:17 +0200 |
commit | 986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e (patch) | |
tree | f0198af6854ca4c3b13495eb8e3feb5788251a44 /csrf | |
parent | 3234c5ec777117d429bdc04dcf10c30094079e57 (diff) | |
download | gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.tar.gz gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.tar.bz2 gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.zip |
Fix CSRF handling, esp. when errors occur in form
Diffstat (limited to '')
-rw-r--r-- | csrf.go | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -19,9 +19,13 @@ func csrfHandler(next http.Handler) http.Handler { // Csrf handles the CSRF data for a form. // Include it verbatim and then use `{{.CsrfField}}` in templates. type Csrf struct { - CsrfField template.HTML `form:"-"` + CsrfField template.HTML `form:"-" schema:"-"` } -func CsrfField(r *http.Request) Csrf { - return Csrf{CsrfField: csrf.TemplateField(r)} +func (c *Csrf) SetCsrfField(r *http.Request) { + c.CsrfField = csrf.TemplateField(r) +} + +type WithCsrf interface { + SetCsrfField(r *http.Request) } |