Documentation
¶
Overview ¶
Package session (session manager) control process session lifetime create, update and destroy
Index ¶
- func ProviderNames() []string
- func Register(name string, provide DataProvider)
- type DataProvider
- type GCProvider
- type Manager
- func (manager *Manager) Exists(sid string) bool
- func (manager *Manager) RegenerateID(w http.ResponseWriter, r *http.Request)
- func (manager *Manager) SessionDestroy(w http.ResponseWriter, r *http.Request) (err error)
- func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (session Session, err error)
- type SessOpts
- type Session
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ProviderNames ¶
func ProviderNames() []string
ProviderNames return slice of strings - registered Provider names
func Register ¶
func Register(name string, provide DataProvider)
Register makes a session provide available by the provided name. If Register is called twice with the same name or if driver is nil, it panics.
Types ¶
type DataProvider ¶
type DataProvider interface {
//SetParams set additional params for provider ex: sql db connection, filesystem path .. etc.
SetParams(params any) error
//SetGCProvider activate GC for sessions
SetGCProvider(gcprv GCProvider)
//Init create new empty session
Init(sid string) (Session, error)
//Load existing session or if not exists
//create new session using sid value
Load(sid string) (Session, error)
//Destroy remove session with sid from storage if exist
Destroy(sid string) error
//ChangeID id change old sid to newsid and preserve existing session data
ChangeID(oldsid, newsid string) (err error)
//Exists return true if session with sid exist
Exists(sid string) bool
}
DataProvider interace implement lifecycle for one session
type GCProvider ¶
type GCProvider interface {
//Init start lifetime for sid
Init(sid string)
//Continue lifetime (+lifetime)
Continue(sid string)
//End zero lifetime (end)
End(sid string)
//ChangeID change id of existing session
ChangeID(oldid, newid string)
}
GCProvider control lifetime of sessions
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager controls all sessions with registered storage provider
func NewManager ¶
NewManager create new *Manager using SesOpts and aditional any other opts for using in provider
func (*Manager) RegenerateID ¶
func (manager *Manager) RegenerateID(w http.ResponseWriter, r *http.Request)
RegenerateID vhange sid and preserve all session data
func (*Manager) SessionDestroy ¶
SessionDestroy end session and delete session data at the server
func (*Manager) SessionStart ¶
func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (session Session, err error)
SessionStart start session for next http response
type Session ¶
type Session interface {
//set session value and update last access time
Set(key, value any) error
//get session value and update last access time
Get(key any) (v any, err error)
//delete session value
Delete(key any) error
//Data get all session data
Data() (data map[any]any, err error)
//get session id
SessionID() string
}
Session interface implement storage for one session and have maxLifetime and lastAccessTime
Directories
¶
| Path | Synopsis |
|---|---|
|
package lf is for GCProvider impl.
|
package lf is for GCProvider impl. |
|
storage
|
|
|
files
Package files implements sessions saved into filesystem persistently encoded using gob or json
|
Package files implements sessions saved into filesystem persistently encoded using gob or json |
|
memory
Package memory implements sessions saved into memory is gone when stop the server
|
Package memory implements sessions saved into memory is gone when stop the server |