请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Session多机部署问题?

第十章代码
BaseController.go
85行: memberobj := session.Get(common.SessionName)
174行:session.Set(common.SessionName, member)

common.go
10行: const SessionName = “mbook_session

这是不是意味着session中从始至终只有一个名为 "mbook_session"的key?只是这个key能被多台服务器读取到?
我才开始学习,如有错误之处,还请多多指教

正在回答 回答被采纳积分+3

1回答

自由编程 2020-05-27 15:29:33

一般有两种常见处理方式
1,可以设置session存储在一个地方,比如存在同一个redis中
2,一些场景下,也可以通过nginx配置,讲同一用户请求打到相同的后端机器上

0 回复 有任何疑惑可以回复我~
  • 提问者 舒昕宇 #1
    老师好,我对于BaseController.go代码还有一些疑问:
    仅仅/仅仅/仅仅 针对第10章代码/代码/代码,session.Set和Get都是使用"__mbook_session__"作为Key,假设session中存储的是某个用户的信息,那么当其他任意用户登陆时,session.get("__mbook_session__")不为空,根据代码逻辑会不会把之前保存的用户member信息赋值给新访客?
    例如:
    当前Session的"__mbook_session__"保存用户A的member信息
    用户B访问时,Session中"__mbook_session__"为用户A的member信息,不为空。所以用户B会获得用户A的信息并以A的权限浏览网站?
    回复 有任何疑惑可以回复我~ 2020-05-28 17:58:52
  • 自由编程 回复 提问者 舒昕宇 #2
    这个不会,session其实是针对每个用户回话单独存一份数据
    回复 有任何疑惑可以回复我~ 2020-05-28 18:53:45
  • 自由编程 回复 提问者 舒昕宇 #3
    可以看到每个用户回有一个session id
    回复 有任何疑惑可以回复我~ 2020-05-28 18:54:34
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信