From c9fe24ecf99f301889415afea4206b5433480173 Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Sat, 29 Dec 2018 05:50:59 -0500 Subject: Add logout handler --- main.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index a9e3ab6..e38ea1e 100644 --- a/main.go +++ b/main.go @@ -37,7 +37,7 @@ func (app *App) validateHandler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } else { log.Println("Session does not exist:", c.Value) - w.WriteHeader(http.StatusForbidden) + w.WriteHeader(http.StatusUnauthorized) } } } @@ -69,6 +69,12 @@ func (app *App) loginHandler(w http.ResponseWriter, r *http.Request) { } } +func (app *App) logoutHandler(w http.ResponseWriter, r *http.Request) { + c := http.Cookie{Name: "id", Value: "", Domain: ".horel.test", MaxAge: 0} + http.SetCookie(w, &c) + http.Redirect(w, r, "/login", http.StatusSeeOther) +} + func main() { //log.SetFlags(log.LstdFlags) if len(os.Args) == 1 { @@ -79,6 +85,7 @@ func main() { app := &App{store, template} http.HandleFunc("/validate", app.validateHandler) http.HandleFunc("/login", app.loginHandler) + http.HandleFunc("/logout", app.logoutHandler) if err := http.ListenAndServe(":8080", logMux(http.DefaultServeMux)); err != nil { panic(err) } -- cgit v1.2.3-70-g09d2