SessionManagerGo 的 session 管理
目前Go語言標準庫沒有session處理,所以我根據(jù)database/sql/driver的思路整理了定義了一個Provider的接口,只要實現(xiàn)這個接口就可以實現(xiàn)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"])
}
}評論
圖片
表情
