Documentation
¶
Index ¶
- func CreateSession(gdb *gorm.DB, w http.ResponseWriter, userID uint, secure bool) error
- func RequireAPIKey(gdb *gorm.DB) func(http.Handler) http.Handler
- func RequireSession(gdb *gorm.DB) func(http.Handler) http.Handler
- func SessionUser(r *http.Request) *db.User
- func ShemFromRequest(r *http.Request) *db.Shem
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateSession ¶
CreateSession generates a random token, stores its SHA-256 hash in db.Session, sets an HTTP-only cookie named "golem_session", 7-day TTL. secure should be true when the server is running behind TLS.
func RequireAPIKey ¶
RequireAPIKey middleware: reads "X-Shem-Name" and "Authorization: Bearer <key>" headers, looks up the shem by name, verifies the key, and stores *db.Shem in the request context. Returns 401 on any failure.
func RequireSession ¶
RequireSession middleware: reads "golem_session" cookie, SHA-256 hashes it, looks up db.Session (checking expires_at > now), loads db.User, stores *db.User in request context via sessionUserKey. Redirects to /login on any failure.
func SessionUser ¶
SessionUser extracts *db.User from context (set by RequireSession). Returns nil if not present.
Types ¶
This section is empty.