2015-01-21 66 views
3

我已經設置了一個cookie,並可以在我的瀏覽器中看到它。無論如何我都找不到它。我試過的是:如何在Go中刪除Cookie

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

但是,運行此代碼後,cookie仍然存在,並具有原始值。

回答

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中唯一需要的字段,但您已經知道。

+0

是的,這沒有把戲。即使只是在我的代碼中添加路徑也可以,儘管我更喜歡你的實現。謝謝! – Tyler 2015-01-21 06:36:01

+2

問題中的代碼不處理客戶端未發送cookie的情況。創建一個新的cookie更簡單。 – 2015-01-21 06:42:20