cookie通常用于在浏览器中保存一些小数据,例如客户标识、用户非铭感数据。注意别使用cookie保存隐私数据。
gin框架主要通过上下文对象提供的SetCookie和Cookie两个函数操作cookie
1.设置cookie
例子:
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/cookie", func(c *gin.Context) {
// 设置cookie
c.SetCookie("site_cookie", "cookievalue", 3600, "/", "localhost", false, true)
})
router.Run()
SetCookie函数定义:
func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
参数说明:
参数名 | 类型 | 说明 |
name | string | cookie名字 |
value | string | cookie值 |
maxAge | int | 有效时间,单位是秒,MaxAge=0 忽略MaxAge属性,MaxAge<0 相当于删除cookie, 通常可以设置-1代表删除,MaxAge>0 多少秒后cookie失效 |
path | string | cookie路径 |
domain | string | cookie作用域 |
secure | bool | Secure=true,那么这个cookie只能用https协议发送给服务器 |
httpOnly | bool | 设置HttpOnly=true的cookie不能被js获取到 |
2.读取cookie
func Handler(c *gin.Context) {
// 根据cookie名字读取cookie值
data, err := c.Cookie("site_cookie")
if err != nil {
// 直接返回cookie值
c.String(200,data)
return
}
c.String(200,"not found!")
}
3.删除coolie
通过将cookie的MaxAge设置为-1, 达到删除cookie的目的。
func Handler(c *gin.Context) {
// 设置cookie MaxAge设置为-1,表示删除cookie
c.SetCookie("site_cookie", "cookievalue", -1, "/", "localhost", false, true)
c.String(200,"删除cookie演示")
}