Обновил сессии

This commit is contained in:
Alexander NeonXP Kiryukhin 2024-07-30 00:46:05 +03:00
parent 96e2ce2e9d
commit 48a84eb03f
Signed by: NeonXP
GPG key ID: 35E33E1AB7776B39
4 changed files with 15 additions and 20 deletions

View file

@ -95,12 +95,14 @@ func serve(ctx context.Context) error {
e.Handle("/assets/", http.StripPrefix("/assets", http.FileServerFS(assets.FS)))
sessionManager := session.New(session.NewBoltStore(orm, []byte("sessions")))
mh := mux.Use(e,
middleware.Logger(slog.Default()),
middleware.Recover(slog.Default()),
// middleware.Recover(slog.Default()),
middleware.RequestID,
appmiddleware.UserMiddleware(),
session.Middleware(session.DefaultConfig, session.NewBoltStore(orm, []byte("sessions"))),
sessionManager.Middleware(),
)
slog.InfoContext(ctx, "started gorum", slog.String("bind", listen))

View file

@ -24,7 +24,13 @@ func (rt *Router) Login(w http.ResponseWriter, r *http.Request) {
}
sess := session.FromRequest(r)
(*sess)["user"] = u
values := sess.Values(r.Context())
values["user"] = u
if err := sess.Save(w, r, values); err != nil {
mux.Render(w, r, mux.DefaultErrorHandler(err))
return
}
mux.Redirect(w, 302, "/")
return
@ -34,7 +40,8 @@ func (rt *Router) Login(w http.ResponseWriter, r *http.Request) {
}
func (rt *Router) Logout(w http.ResponseWriter, r *http.Request) {
session.Clear(w, r)
sess := session.FromRequest(r)
sess.Clear(w, r)
mux.Redirect(w, 302, "/")
}

View file

@ -13,7 +13,8 @@ func UserMiddleware() mux.Middleware {
return func(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
session := session.FromRequest(r)
user := (*session)["user"]
values := session.Values(r.Context())
user := values["user"]
if user == nil {
h.ServeHTTP(w, r)
return

View file

@ -1,15 +0,0 @@
package utils
import (
"net/http"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
)
func Render(c echo.Context, cmp templ.Component) error {
c.Response().WriteHeader(http.StatusOK)
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTMLCharsetUTF8)
return cmp.Render(c.Request().Context(), c.Response())
}