From 165ee77a72cd623cad442a00decf3273c1fa2065 Mon Sep 17 00:00:00 2001 From: tamsin johnson Date: Wed, 7 Feb 2024 12:33:53 -0800 Subject: [PATCH] lets-go:11.0 very minimal first pass at logout curious why `http.Redirect` does POST here? because i haven't handled any user input? --- snippetbox/cmd/web/handlers.go | 8 ++++++++ snippetbox/cmd/web/routes.go | 1 + 2 files changed, 9 insertions(+) diff --git a/snippetbox/cmd/web/handlers.go b/snippetbox/cmd/web/handlers.go index 670579a..0af9a43 100644 --- a/snippetbox/cmd/web/handlers.go +++ b/snippetbox/cmd/web/handlers.go @@ -188,3 +188,11 @@ func (app *application) userLoginPost(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", http.StatusSeeOther) } + +// userLoginPost ... +func (app *application) userLogoutPost(w http.ResponseWriter, r *http.Request) { + id := app.sessionManager.PopInt(r.Context(), "authenticatedUserID") + + app.sessionManager.Put(r.Context(), "flash", fmt.Sprintf("LOGGED OUT USER %s! (not really)", id)) + http.Redirect(w, r, "/", http.StatusSeeOther) +} diff --git a/snippetbox/cmd/web/routes.go b/snippetbox/cmd/web/routes.go index fb4574d..849089e 100644 --- a/snippetbox/cmd/web/routes.go +++ b/snippetbox/cmd/web/routes.go @@ -33,6 +33,7 @@ func (app *application) routes() http.Handler { router.Handler(http.MethodPost, "/user/signup", dynamic.ThenFunc(app.userSignupPost)) router.Handler(http.MethodGet, "/user/login", dynamic.ThenFunc(app.userLogin)) router.Handler(http.MethodPost, "/user/login", dynamic.ThenFunc(app.userLoginPost)) + router.Handler(http.MethodPost, "/user/logout", dynamic.ThenFunc(app.userLogoutPost)) standard := alice.New(app.recoverPanic, app.logRequest, secureHeaders)