session

package module
Version: v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2020 License: Apache-2.0 Imports: 19 Imported by: 1,008

README

session

GitHub Workflow Status codecov GoDoc Sourcegraph

Middleware session provides session management for Macaron. It can use many session providers, including memory, file, Redis, Memcache, PostgreSQL, MySQL, Couchbase, Ledis and Nodb.

Installation

The minimum requirement of Go is 1.6 (1.13 if using Redis, 1.10 if using MySQL).

go get github.com/go-macaron/session

Getting Help

Credits

This package is a modified version of beego/session.

License

This project is under the Apache License, Version 2.0. See the LICENSE file for the full license text.

Documentation

Overview

Package session a middleware that provides the session management of Macaron.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeGob

func DecodeGob(encoded []byte) (out map[interface{}]interface{}, err error)

func EncodeGob

func EncodeGob(obj map[interface{}]interface{}) ([]byte, error)

func Register

func Register(name string, provider Provider)

Register registers a provider.

func Sessioner

func Sessioner(options ...Options) macaron.Handler

Sessioner is a middleware that maps a session.SessionStore service into the Macaron handler chain. An single variadic session.Options struct can be optionally provided to configure.

func Version

func Version() string

Types

type FileProvider

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

FileProvider represents a file session provider implementation.

func (*FileProvider) Count

func (p *FileProvider) Count() int

Count counts and returns number of sessions.

func (*FileProvider) Destory

func (p *FileProvider) Destory(sid string) error

Destory deletes a session by session ID.

func (*FileProvider) Exist

func (p *FileProvider) Exist(sid string) bool

Exist returns true if session with given ID exists.

func (*FileProvider) GC

func (p *FileProvider) GC()

GC calls GC to clean expired sessions.

func (*FileProvider) Init

func (p *FileProvider) Init(maxlifetime int64, rootPath string) error

Init initializes file session provider with given root path.

func (*FileProvider) Read

func (p *FileProvider) Read(sid string) (_ RawStore, err error)

Read returns raw session store by session ID.

func (*FileProvider) Regenerate

func (p *FileProvider) Regenerate(oldsid, sid string) (_ RawStore, err error)

Regenerate regenerates a session store from old session ID to new one.

type FileStore

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

FileStore represents a file session store implementation.

func NewFileStore

func NewFileStore(p *FileProvider, sid string, kv map[interface{}]interface{}) *FileStore

NewFileStore creates and returns a file session store.

func (*FileStore) Delete

func (s *FileStore) Delete(key interface{}) error

Delete delete a key from session.

func (*FileStore) Flush

func (s *FileStore) Flush() error

Flush deletes all session data.

func (*FileStore) Get

func (s *FileStore) Get(key interface{}) interface{}

Get gets value by given key in session.

func (*FileStore) ID

func (s *FileStore) ID() string

ID returns current session ID.

func (*FileStore) Release

func (s *FileStore) Release() error

Release releases resource and save data to provider.

func (*FileStore) Set

func (s *FileStore) Set(key, val interface{}) error

Set sets value to given key in session.

type Flash

type Flash struct {
	url.Values
	ErrorMsg, WarningMsg, InfoMsg, SuccessMsg string
	// contains filtered or unexported fields
}

func (*Flash) Error

func (f *Flash) Error(msg string, current ...bool)

func (*Flash) Info

func (f *Flash) Info(msg string, current ...bool)

func (*Flash) Success

func (f *Flash) Success(msg string, current ...bool)

func (*Flash) Warning

func (f *Flash) Warning(msg string, current ...bool)

type Manager

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

Manager represents a struct that contains session provider and its configuration.

func NewManager

func NewManager(name string, opt Options) (*Manager, error)

NewManager creates and returns a new session manager by given provider name and configuration. It panics when given provider isn't registered.

func (*Manager) Count

func (m *Manager) Count() int

Count counts and returns number of sessions.

func (*Manager) Destory

func (m *Manager) Destory(ctx *macaron.Context) error

Destory deletes a session by given ID.

func (*Manager) GC

func (m *Manager) GC()

GC starts GC job in a certain period.

func (*Manager) Read

func (m *Manager) Read(sid string) (RawStore, error)

Read returns raw session store by session ID.

func (*Manager) RegenerateId

func (m *Manager) RegenerateId(ctx *macaron.Context) (sess RawStore, err error)

RegenerateId regenerates a session store from old session ID to new one.

func (*Manager) SetSecure

func (m *Manager) SetSecure(secure bool)

SetSecure indicates whether to set cookie with HTTPS or not.

func (*Manager) Start

func (m *Manager) Start(ctx *macaron.Context) (RawStore, error)

Start starts a session by generating new one or retrieve existence one by reading session ID from HTTP request if it's valid.

type MemProvider

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

MemProvider represents a in-memory session provider implementation.

func (*MemProvider) Count

func (p *MemProvider) Count() int

Count counts and returns number of sessions.

func (*MemProvider) Destory

func (p *MemProvider) Destory(sid string) error

Destory deletes a session by session ID.

func (*MemProvider) Exist

func (p *MemProvider) Exist(sid string) bool

Exist returns true if session with given ID exists.

func (*MemProvider) GC

func (p *MemProvider) GC()

GC calls GC to clean expired sessions.

func (*MemProvider) Init

func (p *MemProvider) Init(maxLifetime int64, _ string) error

Init initializes memory session provider.

func (*MemProvider) Read

func (p *MemProvider) Read(sid string) (_ RawStore, err error)

Read returns raw session store by session ID.

func (*MemProvider) Regenerate

func (p *MemProvider) Regenerate(oldsid, sid string) (RawStore, error)

Regenerate regenerates a session store from old session ID to new one.

type MemStore

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

MemStore represents a in-memory session store implementation.

func NewMemStore

func NewMemStore(sid string) *MemStore

NewMemStore creates and returns a memory session store.

func (*MemStore) Delete

func (s *MemStore) Delete(key interface{}) error

Delete deletes a key from session.

func (*MemStore) Flush

func (s *MemStore) Flush() error

Flush deletes all session data.

func (*MemStore) Get

func (s *MemStore) Get(key interface{}) interface{}

Get gets value by given key in session.

func (*MemStore) ID

func (s *MemStore) ID() string

ID returns current session ID.

func (*MemStore) Release

func (_ *MemStore) Release() error

Release releases resource and save data to provider.

func (*MemStore) Set

func (s *MemStore) Set(key, val interface{}) error

Set sets value to given key in session.

type Options

type Options struct {
	// Name of provider. Default is "memory".
	Provider string
	// Provider configuration, it's corresponding to provider.
	ProviderConfig string
	// Cookie name to save session ID. Default is "MacaronSession".
	CookieName string
	// Cookie path to store. Default is "/".
	CookiePath string
	// GC interval time in seconds. Default is 3600.
	Gclifetime int64
	// Max life time in seconds. Default is whatever GC interval time is.
	Maxlifetime int64
	// Use HTTPS only. Default is false.
	Secure bool
	// Cookie life time. Default is 0.
	CookieLifeTime int
	// Cookie SameSite default is false (Lax), can be set to true (Strict)
	CookieSameSite bool
	// Cookie domain name. Default is empty.
	Domain string
	// Session ID length. Default is 16.
	IDLength int
	// Configuration section name. Default is "session".
	Section string
	// Ignore release for websocket. Default is false.
	IgnoreReleaseForWebSocket bool
}

Options represents a struct for specifying configuration options for the session middleware.

type Provider

type Provider interface {
	// Init initializes session provider.
	Init(gclifetime int64, config string) error
	// Read returns raw session store by session ID.
	Read(sid string) (RawStore, error)
	// Exist returns true if session with given ID exists.
	Exist(sid string) bool
	// Destory deletes a session by session ID.
	Destory(sid string) error
	// Regenerate regenerates a session store from old session ID to new one.
	Regenerate(oldsid, sid string) (RawStore, error)
	// Count counts and returns number of sessions.
	Count() int
	// GC calls GC to clean expired sessions.
	GC()
}

Provider is the interface that provides session manipulations.

type RawStore

type RawStore interface {
	// Set sets value to given key in session.
	Set(interface{}, interface{}) error
	// Get gets value by given key in session.
	Get(interface{}) interface{}
	// Delete deletes a key from session.
	Delete(interface{}) error
	// ID returns current session ID.
	ID() string
	// Release releases session resource and save data to provider.
	Release() error
	// Flush deletes all session data.
	Flush() error
}

RawStore is the interface that operates the session data.

type Store

type Store interface {
	RawStore
	// Read returns raw session store by session ID.
	Read(string) (RawStore, error)
	// Destory deletes a session.
	Destory(*macaron.Context) error
	// RegenerateId regenerates a session store from old session ID to new one.
	RegenerateId(*macaron.Context) (RawStore, error)
	// Count counts and returns number of sessions.
	Count() int
	// GC calls GC to clean expired sessions.
	GC()
}

Store is the interface that contains all data for one session process with specific ID.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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