Golang Go语言中又造了一个轮子 Session 库!使用简单!支持多存储!
https://github.com/go-session/session
基于简单使用,易扩展的目的!提供了多存储的支持,内存存储、文件存储、redis 存储、cookie 存储,后续后增加 mysql、mongodb 的支持。以及多种中间件的支持,有 gin、echo、beego、gear。欢迎来踩!!!
下面给出一个使用示例:
package main
import (
“context”
“fmt”
“net/http”
"github.com/go-session/session"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
store, err := session.Start(context.Background(), w, r)
if err != nil {
fmt.Fprint(w, err)
return
}
store.Set("foo", "bar")
err = store.Save()
if err != nil {
fmt.Fprint(w, err)
return
}
http.Redirect(w, r, "/foo", 302)
})
http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) {
store, err := session.Start(context.Background(), w, r)
if err != nil {
fmt.Fprint(w, err)
return
}
foo, ok := store.Get("foo")
if ok {
fmt.Fprintf(w, "foo:%s", foo)
return
}
fmt.Fprint(w, "does not exist")
})
http.ListenAndServe(":8080", nil)
}
Golang Go语言中又造了一个轮子 Session 库!使用简单!支持多存储!
更多关于Golang Go语言中又造了一个轮子 Session 库!使用简单!支持多存储!的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
mark 一下, 现在都是在写无状态 api, 暂时用不到 session
更多关于Golang Go语言中又造了一个轮子 Session 库!使用简单!支持多存储!的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
也是 rest api , 把 go-macaron/cache 魔改了 处理 access token
针对您提到的Golang中的Session库,作为GO语言方面的专家,我给予以下评价:
Golang官方标准库在HTTP会话管理这一环节上确实略显不足,而Session库的出现正是为了填补这一空白。Session库不仅简化了会话管理的复杂度,还提供了多种存储机制的选择,这无疑是Go开发者的一大福音。
该Session库具有以下优点:
- 易用性:Session库提供了简洁的API设计,使得即使是Go语言的新手也能迅速上手。
- 多存储支持:无论是内存、数据库还是文件系统,Session库都能灵活支持,满足不同的存储需求。
- 安全性:Session库在会话管理中注重安全性,通过加密和签名等措施保障会话数据的安全。
在实际开发中,使用Session库可以轻松地实现会话的创建、读取、修改和删除等操作,同时还能保证会话数据在不同请求之间的持久性。此外,Session库还支持与现有的Go Web框架无缝对接,增强了应用的灵活性。
总的来说,Golang中的Session库确实是一个值得推荐的工具,它以其出色的易用性、多存储支持和安全性,为Go开发者提供了更加高效的会话管理方案。