summaryrefslogtreecommitdiff
path: root/app/controllers/sessions/controller.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/sessions/controller.go')
-rw-r--r--app/controllers/sessions/controller.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/controllers/sessions/controller.go b/app/controllers/sessions/controller.go
index 08002a2..7e706e7 100644
--- a/app/controllers/sessions/controller.go
+++ b/app/controllers/sessions/controller.go
@@ -25,6 +25,7 @@ func New(cfg *oidc.OpenID, http *http.Client) *Controller {
func (c *Controller) MountTo(mux *http.ServeMux) {
mux.HandleFunc("GET /session/new", c.New)
mux.HandleFunc("GET /session/callback", c.Create)
+ mux.HandleFunc("POST /session/destroy", c.Destroy)
}
func (c *Controller) New(w http.ResponseWriter, r *http.Request) {
@@ -138,3 +139,8 @@ func (c *Controller) Create(w http.ResponseWriter, r *http.Request) {
http.SetCookie(w, cookie.New("session", encoded, tokens.Expiry))
http.Redirect(w, r, "/dashboard", http.StatusFound)
}
+
+func (c *Controller) Destroy(w http.ResponseWriter, r *http.Request) {
+ cookie.Expire(w, r, "session")
+ http.Redirect(w, r, "/", http.StatusFound)
+}