在 Go 中使用 cookie 时注销链接搞砸了

作为一个刚开始做一些网络的后端开发人员,我正在为 cookie 和链接而苦苦挣扎。我正在用 Go 实现基本的身份验证系统。在登录时,在服务器端设置一个 cookie,然后在注销时将其MaxAge设置为-1(再次在服务器端)。


东西在本地运行,所有 cookie 都设置为根路径/


登录:


cookie := http.Cookie{

    Name:     name,

    Value:    value,

    Domain:   "localhost",

    Path:     "/"

}

登出:


cookie := http.Cookie{

    Name:     name,

    Value:    value,

    Domain:   "localhost",

    Path:     "/",

    MaxAge:   -1,

}

此外,注销处理程序在完成后会重定向到 root。

这是流程:

  • 登陆成功

  • 注销成功

  • 再次登录成功

  • 注销将我发送到根目录而不是注销页面(使用普通链接进行注销)。它什么都不做(不清除会话和其他所有内容)所以我仍然登录

你知道为什么会这样吗?


叮当猫咪
浏览 74回答 1
1回答

四季花海

对不起,信不信由你,这是一个错字。我错误地使用了 301 重定向(而不是 pf 307)。因此,第一次注销路由重定向到具有 301 状态的 root,每次下次单击注销链接都会自动定向到 root(永久移动)。–
打开App,查看更多内容
随时随地看视频慕课网APP