An atproto PDS written in Go
at main 644 B view raw
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}