使用Cookie
Gin框架对Cookie的读取和设置进行了一些封装,这篇笔记我们学习如何读取和设置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)。
设置Cookie
Gin框架使用SetCookie()
方法设置Cookie,不过这个方法的参数较多,其方法定义如下:
func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool) {}
- name:Cookie的键
- value:Cookie的值
- maxAge:过期时间
- path:Cookie起作用的路径,
/
表示根路径 - domain:作用域,本地调试时即为localhost,线上环境则应该传域名
- secure:传
true
时,Cookie仅在HTTPS下有效 - httpOnly:传
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;
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。