...

Package sessions

import "github.com/gin-contrib/sessions"
Overview
Index
Subdirectories

Overview ▾

Constants

const (
    DefaultKey = "github.com/gin-contrib/sessions"
)

func Sessions

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

func SessionsMany

func SessionsMany(names []string, store Store) gin.HandlerFunc

type Options

Options stores configuration for a session or session store. Fields are a subset of http.Cookie fields.

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
    // rfc-draft to preventing CSRF: https://tools.ietf.org/html/draft-west-first-party-cookies-07
    //   refer: https://godoc.org/net/http
    //          https://www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesite-cookie-attribute/
    SameSite http.SameSite
}

func (Options) ToGorillaOptions

func (options Options) ToGorillaOptions() *gsessions.Options

type Session

Wraps thinly gorilla-session methods. Session stores the values and optional configuration for a session.

type Session interface {
    // ID of the session, generated by stores. It should not be used for user data.
    ID() string
    // 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 configuration for a session.
    Options(Options)
    // Save saves all sessions used during the current request.
    Save() error
}

func Default

func Default(c *gin.Context) Session

shortcut to get session

func DefaultMany

func DefaultMany(c *gin.Context, name string) Session

shortcut to get session with given name

type Store

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

Subdirectories

Name Synopsis
..
cookie
gorm
memcached
memstore
mongo
mongodriver
mongomgo
postgres
redis
tester Package tester is a package to test each packages of session stores, such as cookie, redis, memcached, mongo, memstore.