在同一个问题上栽了两次,以后碰到cookie出问题多半都是因为这个。
Request.Cookie(name)取Cookie的时候,返回值只有name和value
cookie.go
cookies = append(cookies, &Cookie{Name: name, Value: val})
可以看到只返回了Name和Value两个值,大概是为了所谓性能吧。于是在拦截器里读取当前Cookie并重设时间的时候,Path和时间值都要重设一下。不然原来根目录下的Cookie还在,而新的Cookie就根据某些规则种到不知道哪里了,还有可能导致退出的时候删不干净。
所以用golang种cookie的时候,除了name和value, 所有其的值都要像新建cookie一样重设一遍重设一遍!
有疑问加站长微信联系(非本文作者)