【发布时间】:2022-02-01 21:17:49
【问题描述】:
作为刚开始做一些 Web 的后端开发人员,我正在为 cookie 和链接而苦苦挣扎。我正在用 Go 实现基本的身份验证系统。登录时,在服务器端设置一个 cookie,然后在注销时将其 MaxAge 设置为 -1(同样在服务器端)。
东西在本地运行,所有的cookies都设置为根路径/
登录:
cookie := http.Cookie{
Name: name,
Value: value,
Domain: "localhost",
Path: "/"
}
退出:
cookie := http.Cookie{
Name: name,
Value: value,
Domain: "localhost",
Path: "/",
MaxAge: -1,
}
此外,注销处理程序在完成后会重定向到 root。
流程如下:
- 登录成功
- 注销成功
- 再次登录成功
- 注销将我发送到根目录而不是注销页面(普通链接用于注销)。它什么都不做(不清除会话和其他所有内容)所以我仍然登录
你知道为什么会这样吗?
【问题讨论】:
-
请输入一些你试过的代码?
-
编辑问题以显示注销处理程序的代码。
-
域 cookie 和 localhost 经常是个问题,而且很少明智。
-
对不起,信不信由你,这是一个错字。我错误地使用了 301 重定向(而不是 pf 307)。所以第一次注销路由重定向到root,状态为301,每次下次点击注销链接都会自动定向到root(永久移动)。