session

package
v0.0.0-...-87dac79 Latest Latest
Warning

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

Go to latest
Published: May 14, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ConfigDefault = Config{
	Expiration:   24 * time.Hour,
	KeyLookup:    "cookie:session_id",
	KeyGenerator: utils.UUIDv4,
	// contains filtered or unexported fields
}

ConfigDefault is the default config

Functions

This section is empty.

Types

type Config

type Config struct {
	// Allowed session duration
	// Optional. Default value 24 * time.Hour
	Expiration time.Duration

	// Storage interface to store the session data
	// Optional. Default value memory.New()
	Storage woody.Storage

	// KeyLookup is a string in the form of "<source>:<name>" that is used
	// to extract session id from the request.
	// Possible values: "header:<name>", "query:<name>" or "cookie:<name>"
	// Optional. Default value "cookie:session_id".
	KeyLookup string

	// Domain of the CSRF cookie.
	// Optional. Default value "".
	CookieDomain string

	// Path of the CSRF cookie.
	// Optional. Default value "".
	CookiePath string

	// Indicates if CSRF cookie is secure.
	// Optional. Default value false.
	CookieSecure bool

	// Indicates if CSRF cookie is HTTP only.
	// Optional. Default value false.
	CookieHTTPOnly bool

	// Value of SameSite cookie.
	// Optional. Default value "Lax".
	CookieSameSite string

	// Decides whether cookie should last for only the browser sesison.
	// Ignores Expiration if set to true
	// Optional. Default value false.
	CookieSessionOnly bool

	// KeyGenerator generates the session key.
	// Optional. Default value utils.UUIDv4
	KeyGenerator func() string

	// Deprecated: Please use KeyLookup
	CookieName string
	// contains filtered or unexported fields
}

Config defines the config for middleware.

type Session

type Session struct {
	// contains filtered or unexported fields
}

func (*Session) Delete

func (s *Session) Delete(key string)

Delete will delete the value

func (*Session) Destroy

func (s *Session) Destroy() error

Destroy will delete the session from Storage and expire session cookie

func (*Session) Fresh

func (s *Session) Fresh() bool

Fresh is true if the current session is new

func (*Session) Get

func (s *Session) Get(key string) interface{}

Get will return the value

func (*Session) ID

func (s *Session) ID() string

ID returns the session id

func (*Session) Keys

func (s *Session) Keys() []string

Keys will retrieve all keys in current session

func (*Session) Regenerate

func (s *Session) Regenerate() error

Regenerate generates a new session id and delete the old one from Storage

func (*Session) Save

func (s *Session) Save() error

Save will update the storage and client cookie

func (*Session) Set

func (s *Session) Set(key string, val interface{})

Set will update or create a new key value

func (*Session) SetExpiry

func (s *Session) SetExpiry(exp time.Duration)

SetExpiry sets a specific expiration for this session

type Source

type Source string
const (
	SourceCookie   Source = "cookie"
	SourceHeader   Source = "header"
	SourceURLQuery Source = "query"
)

type Store

type Store struct {
	Config
}

func New

func New(config ...Config) *Store

func (*Store) Get

func (s *Store) Get(c *woody.Ctx) (*Session, error)

Get will get/create a session

func (*Store) RegisterType

func (*Store) RegisterType(i interface{})

RegisterType will allow you to encode/decode custom types into any Storage provider

func (*Store) Reset

func (s *Store) Reset() error

Reset will delete all session from the storage

Jump to

Keyboard shortcuts

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