Categorygithub.com/Ulbora/go-sessions
modulepackage
1.0.2
Repository: https://github.com/ulbora/go-sessions.git
Documentation: pkg.go.dev

# README

go-sessions

Go Report Card

A Go wrapper for gorilla sessions http://www.gorillatoolkit.org/pkg/sessions

Installation

$ go get github.com/gorilla/sessions
$ go get github.com/Ulbora/go-sessions

Usage

Initialize and use

    import usess github.com/Ulbora/go-sessions
    var s usess.Session
    var store *sessions.CookieStore
    func main() {
	    s.MaxAge = 5 * 60
	    s.Name = "user-session-test"
	    s.SessionKey = "554dfgdffdd11dfgf1ff1f"
        store = s.InitSessionStore()
    }

    func handleSomething(r http.ResponseWriter, w *http.Request) {	    
        session, err := store.Get(r, s.Name)
	    if err != nil {
		    http.Error(w, err.Error(), http.StatusInternalServerError)
	    }

        //get already set session value        
	    user := session.Values["username"]

        //sets new session values
        session.Values["someVal"] = "someValue"
        session.Values["someOtherVal"] = 55
        //saves new session values
        session.Save(r, w)

        //do something
    }

Important Note:

If you aren't using gorilla/mux, you need to wrap your handlers with context.ClearHandler or else you will leak memory! An easy way to do this is to wrap the top-level mux when calling http.ListenAndServe:

# Structs

GoSession a GoSession.