1package server
2
3import (
4 "github.com/gorilla/sessions"
5 "github.com/labstack/echo-contrib/session"
6 "github.com/labstack/echo/v4"
7)
8
9func (s *Server) handleAccountSignout(e echo.Context) error {
10 sess, err := session.Get("session", e)
11 if err != nil {
12 return err
13 }
14
15 sess.Options = &sessions.Options{
16 Path: "/",
17 MaxAge: -1,
18 HttpOnly: true,
19 }
20
21 sess.Values = map[any]any{}
22
23 if err := sess.Save(e.Request(), e.Response()); err != nil {
24 return err
25 }
26
27 reqUri := e.QueryParam("request_uri")
28
29 redirect := "/account/signin"
30 if reqUri != "" {
31 redirect += "?" + e.QueryParams().Encode()
32 }
33
34 return e.Redirect(303, redirect)
35}