Skip to content

NHAS/session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages