为了账号安全,请及时绑定邮箱和手机立即绑定

golang martini session.Set 不设置任何值

golang martini session.Set 不设置任何值

Go
芜湖不芜 2021-11-08 10:57:43
没有太多的上下文,因为它确实是一种应该起作用的情况,但事实并非如此。我正在使用马提尼框架。在一个处理程序中,我正在使用这个:session.Set("deployed", "true")r.Redirect("/myOtherURL", http.StatusSeeOther)其中 'session' 是传递给处理程序的 session.Session 对象。在加载 myOtherURL 的处理程序中,我使用 session.Get 但没有返回任何内容。我打印了所有会话内容,但不存在“已部署”。什么可能导致这个问题?我可能会错过什么?如果可以的话,我会提供更多的背景信息,但这真的很简单。
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

只是为了在未来扩展我的评论/帮助他人:

  • 当您在没有明确Path值的情况下设置 cookie 时,cookie 将采用当前路径。

  • Cookie 仅针对该路径和以下路径发送 - 不在上方 - 例如

    1. /modules当您第一次通过隐式设置它时设置的Cookiesession.Set(val, key)

    2. 发送Cookie为了/modules/modules/all并且/modules/detail/12

    3. Cookie不是为了/about/

这可以通过显式设置路径来解决:

var store = sessions.NewCookieStore([]byte("secret123"))


func main() {

    store.Options.Path = "/"

    ...

}

请注意,您可能不想为所有路由发送 cookie(这是/可以做的) - 所以使用判断。


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信