sessions

package module
v0.0.0-...-40b4900 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2017 License: Apache-2.0 Imports: 7 Imported by: 0

README

negroni-sessions GoDoc wercker status

Negroni middleware/handler for easy session management.

Usage

package main

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

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

  store := cookiestore.New([]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")
  })

  n.UseHandler(mux)
  n.Run(":3000")
}

Contributors

Documentation

Overview

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

Constants

This section is empty.

Variables

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

Functions

func Sessions

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.

Types

type Options

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

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

func GetSession(req *http.Request) Session

GetSession returns the session stored in the request context

type Store

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

Store is an interface for custom session stores.

type TokenGetSetter

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

func NewCookieToken() TokenGetSetter

NewCookieToken returns the default TokenGetSetter

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL