38 lines
554 B
Go
38 lines
554 B
Go
package session
|
|
|
|
import (
|
|
"github.com/astaxie/beego/session"
|
|
_ "github.com/astaxie/beego/session/redis"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
sessions *session.Manager
|
|
)
|
|
|
|
func NewSession(config Config) error {
|
|
var (
|
|
err error
|
|
)
|
|
|
|
sessions, err = session.NewManager(config.Type, config.ManagerConfig)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
go sessions.GC()
|
|
|
|
return nil
|
|
}
|
|
|
|
func GetSession(w http.ResponseWriter, r *http.Request) (Store, error) {
|
|
s, err := sessions.SessionStart(w, r)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
defer s.SessionRelease(w)
|
|
|
|
return s, nil
|
|
}
|