Gin框架对Cookie的读取和设置进行了一些封装,这篇笔记我们学习如何读取和设置Cookie。
Gin框架中,获取Cookie使用Cookie()
方法即可。
engine.GET("/api/v1/student", func(context *gin.Context) {
token, err := context.Cookie("token")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(token)
})
注意这里如果Cookie不存在就会抛出异常(err)。
Gin框架使用SetCookie()
方法设置Cookie,不过这个方法的参数较多,其方法定义如下:
func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool) {}
/
表示根路径true
时,Cookie仅在HTTPS下有效true
时表示这是一个HttpOnly的Cookie,浏览器的JavaScript脚本、Applet等是无法读取或是修改该值(对于sessionId这类重要的Cookie应该设置为HttpOnly以避免被XSS攻击的可能)下面是设置Cookie的一个例子:
context.SetCookie("token", "abc123", 3600, "/", "localhost", false, false)
最终设置的Cookie值如下:
token=abc123; Path=/; Domain=localhost; Expires=Sun, 09 Apr 2023 09:32:28 GMT;