beego1.6.1升级到1.7版本遇到的session问题

tonny · · 2485 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

昨天把beego从1.6.1升级到了1.7的版本,结果运行报错指明session的设置指明是session初始化时由于类型问题出错。 ```golang func init() { globalSessions, _ = session.NewManager("memory", `{"cookieName":"gosessionid", "enableSetCookie,omitempty": true, "gclifetime":3600, "maxLifetime": 3600, "secure": false, "sessionIDHashFunc": "sha1", "sessionIDHashKey": "", "cookieLifeTime": 3600, "providerConfig": ""}`) go globalSessions.GC() } ``` 这是以前beego文档里提供的session方法用来初始化数据,但是将beego1.6.1升级到1.7版本后,session这里会报错,ManagerConfig的类型不能在用这样的格式传递。于是去查beego/session的文档,发现NewManager的方法的第一个参数还是string类型,第二个参数变成了*ManagerConfig类型,是一个指针类型。再去看ManagerConfig是一个结构体 ```golang type ManagerConfig struct { CookieName string `json:"cookieName"` EnableSetCookie bool `json:"enableSetCookie,omitempty"` Gclifetime int64 `json:"gclifetime"` Maxlifetime int64 `json:"maxLifetime"` Secure bool `json:"secure"` CookieLifeTime int `json:"cookieLifeTime"` ProviderConfig string `json:"providerConfig"` Domain string `json:"domain"` SessionIDLength int64 `json:"sessionIDLength"` EnableSidInHttpHeader bool `json:"enableSidInHttpHeader"` SessionNameInHttpHeader string `json:"sessionNameInHttpHeader"` EnableSidInUrlQuery bool `json:"enableSidInUrlQuery"` } ``` 于是可以这样来写 ```golang func init() { var structdata session.ManagerConfig structdata.CookieName = "gosessionid" structdata.EnableSetCookie = true structdata.Gclifetime = 3600 structdata.Maxlifetime = 3600 structdata.Secure = false structdata.CookieLifeTime = 3600 structdata.ProviderConfig = "" globalSessions, _ = session.NewManager("memory", &structdata) go globalSessions.GC() } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2485 次点击  ∙  1 赞  
加入收藏 微博
1 回复  |  直到 2016-12-26 07:25:50
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传