Gin框架入门系列-如何处理cookie

2023-11-06 13:57:55 浏览数 (2)

cookie通常用于在浏览器中保存一些小数据,例如客户标识、用户非铭感数据。注意别使用cookie保存隐私数据。

gin框架主要通过上下文对象提供的SetCookie和Cookie两个函数操作cookie

1.设置cookie

例子:

代码语言:javascript复制
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函数定义:

代码语言:javascript复制
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

代码语言:javascript复制
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的目的。

代码语言:javascript复制
func Handler(c *gin.Context) {
      // 设置cookie  MaxAge设置为-1,表示删除cookie
       c.SetCookie("site_cookie", "cookievalue", -1, "/", "localhost", false, true)
      c.String(200,"删除cookie演示")
}

0 人点赞