在 Go 中使用 cookie 时注销 link 搞砸了
Logout link screwed up when using cookies in Go
作为一名刚开始做 Web 的后端开发人员,我正在为 cookie 和 links 而苦苦挣扎。我正在 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。
流程如下:
- 登录成功
- 注销成功
- 再次登录成功
- 注销将我发送到根而不是注销页面(普通的 link 用于注销)。它什么都不做(不清除会话和其他所有内容)所以我仍然登录
你知道为什么会这样吗?
对不起,信不信由你,这是一个打字错误。我错误地使用了 301 重定向(而不是 pf 307)。因此,第一次注销路由以 301 状态重定向到 root,每次下一次单击 Logout link 都会自动定向到 root(永久移动)。 –
作为一名刚开始做 Web 的后端开发人员,我正在为 cookie 和 links 而苦苦挣扎。我正在 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。
流程如下:
- 登录成功
- 注销成功
- 再次登录成功
- 注销将我发送到根而不是注销页面(普通的 link 用于注销)。它什么都不做(不清除会话和其他所有内容)所以我仍然登录
你知道为什么会这样吗?
对不起,信不信由你,这是一个打字错误。我错误地使用了 301 重定向(而不是 pf 307)。因此,第一次注销路由以 301 状态重定向到 root,每次下一次单击 Logout link 都会自动定向到 root(永久移动)。 –