v1.1.2 - SameSite Cookie Support
gorilla/sessions now supports the SameSite
cookie attribute added in Go 1.11.
Cookies with this set (in Strict mode, preferably) are only sent on requests originating from the same origin at as the cookie domain, rather than for all requests to that domain no matter the origin.
You can set SameSite
on a session by setting session.Options.SameSite
to a valid value:
func MyHandler(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, "session-name")
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// Set the SameSite mode via one of the typed constants described
// at https://golang.org/pkg/net/http/#SameSite
session.Options = &sessions.Options{SameSite: http.SameSiteStrictMode}
if err := session.Save(r, w); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
}
You can read more about the SameSite attribute on Mozilla's blog, or inthe RFC itself.