negroni-sessions: github.com/GoIncremental/negroni-sessions Index | Files | Directories

package sessions

import "github.com/GoIncremental/negroni-sessions"

Package sessions contains middleware for easy session management in Negroni. Based on github.com/martini-contrib/sessions

package main

import (
	"github.com/urfave/negroni"
	"github.com/goincremental/negroni-sessions"
	"net/http"
)

func main() {
n := negroni.Classic()

	store := sessions.NewCookieStore([]byte("secret123"))
	n.Use(sessions.Sessions("my_session", store))

	mux := http.NewServeMux()
	mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
		session := sessions.GetSession(req)
		session.Set("hello", "world")
	})
}

Index

Package Files

cookie_token.go errors.go sessions.go

Variables

var (
    ErrInvalidId       = errors.New("session: invalid session id")
    ErrInvalidModified = errors.New("mongostore: invalid modified value")
)

func Sessions Uses

func Sessions(name string, store Store) negroni.HandlerFunc

Sessions is a Middleware that maps a session.Session service into the negroni handler chain. Sessions can use a number of storage solutions with the given store.

type Options Uses

type Options struct {
    Path   string
    Domain string
    // MaxAge=0 means no 'Max-Age' attribute specified.
    // MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0'.
    // MaxAge>0 means Max-Age attribute present and given in seconds.
    MaxAge   int
    Secure   bool
    HTTPOnly bool
}

Options stores configuration for a session or session store.

Fields are a subset of http.Cookie fields.

type Session Uses

type Session interface {
    // Get returns the session value associated to the given key.
    Get(key interface{}) interface{}
    // Set sets the session value associated to the given key.
    Set(key interface{}, val interface{})
    // Delete removes the session value associated to the given key.
    Delete(key interface{})
    // Clear deletes all values in the session.
    Clear()
    // AddFlash adds a flash message to the session.
    // A single variadic argument is accepted, and it is optional: it defines the flash key.
    // If not defined "_flash" is used by default.
    AddFlash(value interface{}, vars ...string)
    // Flashes returns a slice of flash messages from the session.
    // A single variadic argument is accepted, and it is optional: it defines the flash key.
    // If not defined "_flash" is used by default.
    Flashes(vars ...string) []interface{}
    // Options sets confuguration for a session.
    Options(Options)
}

Session stores the values and optional configuration for a session.

func GetSession Uses

func GetSession(req *http.Request) Session

GetSession returns the session stored in the request context

type Store Uses

type Store interface {
    sessions.Store
    Options(Options)
}

Store is an interface for custom session stores.

type TokenGetSetter Uses

type TokenGetSetter interface {
    GetToken(req *http.Request, name string) (string, error)
    SetToken(rw http.ResponseWriter, name, value string, options *sessions.Options)
}

TokenGetSetter allows you to save and retrieve a value stored in a cookie

func NewCookieToken Uses

func NewCookieToken() TokenGetSetter

NewCookieToken returns the default TokenGetSetter

Directories

PathSynopsis
cookiestore
dalstore
dynamostore
mongostore
redisstore

Package sessions imports 7 packages (graph). Updated 2018-10-05. Refresh now. Tools for package owners.