如何在 Go 中删除 cookie

3

我设置了一个cookie并可以在浏览器中看到它。我找不到任何方法来删除它。我尝试过的方法是:

deleteCookie, _ := r.Cookie("login")
deleteCookie.Value = "" 
deleteCookie.MaxAge = -1
http.SetCookie(w, deleteCookie)

但是在运行这段代码后,cookie仍然保留其原始值。

1个回答

3

试试这个:

http.SetCookie(w, &http.Cookie{
     Name: "login",
     MaxAge: -1,
     Expires: time.Now().Add(-100 * time.Hour),// Set expires for older versions of IE
     Path: pathUsedToSetCookie,
})

其中pathUsedToSetCookie是您用于创建原始cookie的路径。

不要重复使用请求cookie。从请求cookie中,您只需要Name字段,但您已经知道了这一点。


没错,这就是诀窍。即使只是在我的代码中添加路径也起作用了,尽管我更喜欢您的实现方式。谢谢! - Tyler
2
问题中的代码没有处理客户端未发送cookie的情况。创建一个新的cookie更简单。 - Charlie Tumahai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接