1、beego 内置了 session 模块,目前 session 模块支持的后端引擎包括 memory、cookie、file、mysql、redis、couchbase、memcache、postgres,用户也可以根据相应的 interface 实现自己的引擎。
beego 中使用 session 相当方便,只要在 main 入口函数中设置
beego.BConfig.WebConfig.Session.SessionOn = true
或者通过配置文件配置
sessionon = true
2、控制器中简单设置、获取session
func (c *TestController) GetSes() {
// 设置 session
c.SetSession("userId", 1)
c.SetSession("username", "孙悟空")
// 获取 session
userId := c.GetSession("userId")
username := c.GetSession("username")
fmt.Printf("用户ID=%v, 用户名称=%v", userId, username)
// 删除 session
c.DelSession("userId")
// 清空 session
c.DestroySession()
}
3、关于 Session 模块使用中的一些参数设置:
1)设置是否开启 Session,默认是 false,配置文件对应的参数名:sessionon
beego.BConfig.WebConfig.Session.SessionOn
2)设置 Session 的引擎,默认是 memory,目前支持还有 file、mysql、redis 等,配置文件对应的参数名:sessionprovider
beego.BConfig.WebConfig.Session.SessionProvider
3)设置 cookies 的名字,Session 默认是保存在用户的浏览器 cookies 里面的,默认名是 beegosessionID,配置文件对应的参数名是:sessionname
beego.BConfig.WebConfig.Session.SessionName
4)设置 Session 过期的时间,默认值是 3600 秒,配置文件对应的参数:sessiongcmaxlifetime
beego.BConfig.WebConfig.Session.SessionGCMaxLifetime
5)设置对应 file、mysql、redis 引擎的保存路径或者链接地址,默认值是空,配置文件对应的参数:sessionproviderconfig
beego.BConfig.WebConfig.Session.SessionProviderConfig
6)默认值为 sha1,采用 sha1 加密算法生产 sessionid
beego.BConfig.WebConfig.Session.SessionHashFunc
7) 默认的 key 是 beegoserversessionkey,建议用户使用的时候修改该参数
beego.BConfig.WebConfig.Session.SessionHashKey
8)设置 cookie 的过期时间,cookie 是用来存储保存在客户端的数据
beego.BConfig.WebConfig.Session.SessionCookieLifeTime
4、当 SessionProvider 为 redis 时,SessionProviderConfig 是 redis 的链接地址,采用了
redigo
beego.BConfig.WebConfig.Session.SessionProvider = "redis"
beego.BConfig.WebConfig.Session.SessionProviderConfig = "127.0.0.1:6379"