使用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进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap