package server import ( "fmt" "net/http" "github.com/labstack/echo-contrib/session" "github.com/labstack/echo/v4" ) const ( cookieName = "rentuuid" routeLogin = "/" ) func MakeAuthMiddleware() echo.MiddlewareFunc { return func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { if c.Request().RequestURI == routeLogin { return next(c) } s, err := readSession(c) if s != "bar" || err != nil { return c.Redirect(http.StatusSeeOther, routeLogin) } return next(c) } } } func readSession(c echo.Context) (string, error) { sess, err := session.Get(sessionName, c) if err != nil { return "", err } return fmt.Sprintf("%s", sess.Values["foo"]), nil }