package session import sushi "git.sharkk.net/Sharkk/Sushi" // Middleware provides session handling func Middleware() sushi.Middleware { return func(ctx sushi.Ctx, next func()) { sessionID := sushi.GetCookie(ctx, sushi.SessionCookieName) var sess *sushi.Session if sessionID != "" { if existingSess, exists := sushi.GetSession(sessionID); exists { sess = existingSess sess.Touch() sushi.StoreSession(sess) sushi.SetSessionCookie(ctx, sessionID) } } if sess == nil { sess = sushi.CreateSession(0) // Guest session sushi.SetSessionCookie(ctx, sess.ID) } ctx.SetUserValue(sushi.SessionCtxKey, sess) next() } }