session认证
1. 简介
2. 安装
go get -u github.com/gorilla/sessions
go get -u github.com/gorilla/context3. 基本用法
3.1 创建和使用中间件
package main
import (
"net/http"
"github.com/sagoo-cloud/nexframe/session"
"github.com/gorilla/mux"
"github.com/gorilla/sessions"
)
func main() {
srv := nexframe.Server()
// 创建一个 cookie 存储
store := sessions.NewCookieStore([]byte("your-secret-key"))
// 使用 session 中间件
srv.WithMiddleware(session.Middleware(store))
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
// 获取会话
sess, err := session.Get("my-session", r)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// 使用会话
sess.Values["visits"] = sess.Values["visits"].(int) + 1
sess.Save(r, w)
w.Write([]byte("Welcome! Visit count: " + fmt.Sprintf("%d", sess.Values["visits"])))
}3.2 使用自定义配置
4. 配置选项
4.1 Config 结构体
4.2 默认配置
5. 核心功能
5.1 获取会话
5.2 使用会话数据
6. 高级用法
6.1 自定义存储
6.2 会话过期
7. 最佳实践
8. 故障排除
最后更新于