Documentation ¶
Index ¶
- Variables
- func DecodeGob(encoded []byte) (map[interface{}]interface{}, error)
- func EncodeGob(obj map[interface{}]interface{}) ([]byte, error)
- func Register(name string, provide Provider)
- type Log
- type Manager
- func (manager *Manager) GC()
- func (manager *Manager) GetActiveSession() ([]string, error)
- func (manager *Manager) GetProvider() Provider
- func (manager *Manager) GetSessionStore(sid string) (sessions Store, err error)
- func (manager *Manager) SessionDestroy(w http.ResponseWriter, r *http.Request)
- func (manager *Manager) SessionRegenerateID(w http.ResponseWriter, r *http.Request) (session Store)
- func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (session Store, err error)
- func (manager *Manager) SetSecure(secure bool)
- func (manager *Manager) TokenDestroy(sid string) error
- func (manager *Manager) TokenExtension(sid string) error
- func (manager *Manager) TokenRegenerateID(oldsid string) (Store, error)
- func (manager *Manager) TokenStart() (session Store, err error)
- type ManagerConfig
- type Provider
- type Store
Constants ¶
This section is empty.
Variables ¶
var (
SLogger = NewSessionLog(os.Stderr)
)
Functions ¶
Types ¶
type Log ¶
Log implement the log.Logger
func NewSessionLog ¶
NewSessionLog set io.Writer to create a Logger for session.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager contains Provider and its configuration.
func NewManager ¶
func NewManager(provideName string, cf *ManagerConfig) (*Manager, error)
NewManager Create new Manager with provider name and json config string. provider name: 1. cookie 2. file 3. memory 4. redis 5. mysql json config: 1. is https default false 2. hashfunc default sha1 3. hashkey default beegosessionkey 4. maxage default is none
func (*Manager) GC ¶
func (manager *Manager) GC()
GC Start session gc process. it can do gc in times after gc lifetime.
func (*Manager) GetActiveSession ¶
GetActiveSession Get all active sessions id.
func (*Manager) GetProvider ¶
GetProvider return current manager's provider
func (*Manager) GetSessionStore ¶
GetSessionStore Get SessionStore by its id.
func (*Manager) SessionDestroy ¶
func (manager *Manager) SessionDestroy(w http.ResponseWriter, r *http.Request)
SessionDestroy Destroy session by its id in http request cookie.
func (*Manager) SessionRegenerateID ¶
SessionRegenerateID Regenerate a session id for this SessionStore who's id is saving in http request.
func (*Manager) SessionStart ¶
func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (session Store, err error)
SessionStart generate or read the session id from http request. if session id exists, return SessionStore with this id.
func (*Manager) TokenRegenerateID ¶
重新生成token
func (*Manager) TokenStart ¶
生成token
type ManagerConfig ¶
type ManagerConfig struct { CookieName string `json:"cookieName"` EnableSetCookie bool `json:"enableSetCookie,omitempty"` Gclifetime int64 `json:"gclifetime"` Maxlifetime int64 `json:"maxLifetime"` DisableHTTPOnly bool `json:"disableHTTPOnly"` Secure bool `json:"secure"` CookieLifeTime int `json:"cookieLifeTime"` ProviderConfig string `json:"providerConfig"` Domain string `json:"domain"` SessionIDLength int64 `json:"sessionIDLength"` EnableSidInHTTPHeader bool `json:"EnableSidInHTTPHeader"` SessionNameInHTTPHeader string `json:"SessionNameInHTTPHeader"` EnableSidInURLQuery bool `json:"EnableSidInURLQuery"` SessionIDPrefix string `json:"sessionIDPrefix"` }
ManagerConfig define the session config
type Provider ¶
type Provider interface { SessionInit(gclifetime int64, config string) error SessionNew(sid string) (Store, error) SessionRead(sid string) (Store, error) SessionExist(sid string) bool SessionRegenerate(oldsid, sid string) (Store, error) SessionDestroy(sid string) error SessionAll() ([]string, error) //get all active session SessionGC() }
Provider contains global session methods and saved SessionStores. it can operate a SessionStore by its id.
type Store ¶
type Store interface { Set(key, value interface{}) error //set session value Get(key interface{}) interface{} //get session value Delete(key interface{}) error //delete session value SessionID() string //back current sessionID SessionRelease() //release the resource & save data to provider & return the data Flush() error //delete all data }
Store contains all data for one session process with specific id.