SessionManagerGo 的 session 管理

联合创作 · 2023-09-20 15:27

目前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"])
    }
}
浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报