NHAS / session

A simple HTTP session manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

session

A simple HTTP session manager. Got bored and needed to have a session manager that manages idle timeouts as well as longer max timeouts.

Example:

type SessionEntry struct {
	ArbitraryContent string
}


sessionManager = NewStore[SessionEntry]("session", time.Duration(IdleTimeDuration)*time.Second)

authorisedRoutes := http.NewServeMux()
authorisedRoutes.HandleFunc("/status", status)
authorisedRoutes.HandleFunc("/dashboard/", dashboard)


log.Fatal(http.ListenAndServe(addr, sessionManager.AuthorisationChecks(authorisedRoutes, nil)))
_, data := sessionManager.GetSessionFromRequest(r)
if data == nil {
    http.Error(w, "No", http.StatusUnauthorized)
    return
}
sessionKey := sessionManager.StartSession(w, r, currentSession, func(session SessionEntry) {
 // Do something on session expiry	
})

// Do stuff


sessionManager.DeleteSession(w,r)

About

A simple HTTP session manager


Languages

Language:Go 100.0%