feat: add SQLite session store support

Add NewSQLiteSessionManager helper that creates an SCS session manager
backed by SQLite, allowing sessions to persist across server restarts.
The function handles table creation automatically.
This commit is contained in:
Ryan Hamamura
2026-01-15 08:44:27 -10:00
parent 73f4e4009b
commit 82a3314089
4 changed files with 48 additions and 1 deletions

View File

@@ -1,13 +1,33 @@
package main
import (
"database/sql"
"log"
_ "github.com/mattn/go-sqlite3"
"github.com/ryanhamamura/via"
"github.com/ryanhamamura/via/h"
)
func main() {
// Open SQLite database for persistent sessions
db, err := sql.Open("sqlite3", "sessions.db")
if err != nil {
log.Fatalf("failed to open database: %v", err)
}
defer db.Close()
// Create session manager with SQLite store
sm, err := via.NewSQLiteSessionManager(db)
if err != nil {
log.Fatalf("failed to create session manager: %v", err)
}
v := via.New()
v.Config(via.Options{ServerAddress: ":7331"})
v.Config(via.Options{
ServerAddress: ":7331",
SessionManager: sm,
})
// Login page
v.Page("/login", func(c *via.Context) {