Обновил сессии
This commit is contained in:
parent
96e2ce2e9d
commit
48a84eb03f
4 changed files with 15 additions and 20 deletions
|
@ -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))
|
||||
|
|
|
@ -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, "/")
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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())
|
||||
}
|
Loading…
Reference in a new issue