我正在使用Echo作为我的网络应用程序。我试图实现登录和注销。当我尝试注销时,它没有清除会话。这是我的代码:
func Logout(c echo.Context) error {
sess, _ := session.Get("session", c)
sess.Options = &sessions.Options{
Path: "/",
MaxAge: -1,
HttpOnly: true,
}
sess.Values["username"] = ""
sess.Values["authenticated"] = ""
sess.Save(c.Request(), c.Response())
return c.Redirect(http.StatusSeeOther, "/")
}
注销后我检查了会话值,没有更改或清除任何内容。我正在使用这些包进行会话管理:
"github.com/labstack/echo-contrib/session"
"github.com/gorilla/sessions"
答案 0 :(得分:0)
问题出在客户端。当cookie的域是localhost时,浏览器会在重定向响应中忽略Set-Cookie。所以我必须使用127.0.0.1而不是localhost。