目前Go语言标准库没有session处理,所以我根据database/sql/driver的思路整理了定义了一个Provider的接口,只要实现这个接口就可以实现session的处理,有点类似PHP的自己处理session方式,下面这个是代码演示
varglobalSessions*sessionmanager.SessionManagerfuncinit(){globalSessions,_=sessionmanager.NewSessionManager("memory","gosessionid",3600)goglobalSessions.GC()}
funclogin(whttp.ResponseWriter,r*http.Request){sess:=globalSessions.SessionStart(w,r)username:=sess.Get("username")fmt.Println(username)ifr.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"])}}
评论