Go语言的Session管理器: SessionManager

jopen 11年前

目前Go语言标准库没有session处理,所以我根据database/sql/driver的思路整理了定义了一个Provider的接口,只要实现这个接口就可以实现session的处理,有点类似PHP的自己处理session方式,下面这个是代码演示:

var globalSessions *sessionmanager.SessionManager    func init() {      globalSessions, _ = sessionmanager.NewSessionManager("memory", "gosessionid", 3600)      go globalSessions.GC()    }    func login(w http.ResponseWriter, r *http.Request) {      sess := globalSessions.SessionStart(w, r)      username := sess.Get("username")      fmt.Println(username)      if r.Method == "GET" {          t, _ := template.ParseFiles("login.gtpl")          t.Execute(w, nil)      } else {          fmt.Println("username:", r.Form["username"])          sess.Set("username", r.Form["username"])          fmt.Println("password:", r.Form["password"])      }  }

项目主页:http://www.open-open.com/lib/view/home/1348630062775