求教,用"github.com/gin-contrib/sessions" 插件,只是一个简直的在session里存个键值对,但是在另一个方法里读这个键,却得不到值

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

var store = sessions.NewCookieStore([]byte("secret")) ... ... router.Use(sessions.Sessions("gosession", store)) { router.GET("login", (&controllers.OauthController{}).LoginByAuth) router.GET("auth", (&controllers.OauthController{}).AuthorizationCodeMethod) } 上面是初始化session的代码, 我作用于两个方法,在`LoginByAuth` 中是 state := randToken() session := sessions.Default(c) session.Set("state", state) session.Save() 就做了个存state 的操作。然后在`AuthorizationCodeMethod`中 session := sessions.Default(c) retrievedState := session.Get("state") 但是显示为空。我把两个函数中的session都有打印出来。session的结构是这样的, type session struct { name string request *http.Request store Store session *sessions.Session written bool writer http.ResponseWriter } 结果发现 ![微信截图_20171102102304.png](https://static.studygolang.com/171102/6de05c6c2433b370959c62a5fe2b99ca.png) 而`session.Set("state", state)`的操作就是把state存入到sessions.Session里面有一个Values的`map[string]interface{}`,但是如图显示,两次得到的sessions.Session是不一样的。我真不知道怎么办了,我就是用`sessions.Default(c)`基本方法去做这个实现的。请问有没有大神知道是怎么回事呢?

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

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

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