zoukankan      html  css  js  c++  java
  • Golang ECHOhtml处理Cookie【7】

    在echo框架中,通过net/http包的Cookie结构体初始化一个cookie,然后通过echo.Context上下文对象的SetCookie函数往请求结果设置cookie.

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

    1.设置cookie

    往客户设置一个cookie需要两个步骤:

    • 初始化http.Cookie对象
    • 调用SetCookie函数设置cookie对象

    例子:

    // Handler
    func(c echo.Context) (err error) {
        //初始化cookie对象
        cookie := new(http.Cookie)
    	cookie.Name = "age"
    	cookie.Value = "18"
    	cookie.Path = "/"
    	//cookie有效期为3600秒
    	cookie.MaxAge = 3600
    	
    	//设置cookie
    	c.SetCookie(cookie)
      return c.String(http.StatusOK, "cookie操作")
    }
    

    2.http.Cookie结构体定义

    这里介绍下http.Cookie有什么字段,可以根据需要设置。

    type Cookie struct {
    	Name  string  //cookie名字
    	Value string  //cookie的值
    
    	Path       string    // [可选字段] cookie路径
    	Domain     string    // [可选字段] cookie作用域
    	Expires    time.Time // [可选字段] cookie什么时候失效,需要设置一个具体的失效时间跟MaxAge字段二选一即可,
    
    	// MaxAge=0 忽略MaxAge属性.
    	// MaxAge<0 相当于删除cookie, 通常可以设置-1代表删除
    	// MaxAge>0 多少秒后cookie失效
    	MaxAge   int        // [可选字段] cookie有效期,单位是秒
    	Secure   bool    // [可选字段] cookie secure属性
    	HttpOnly bool    // [可选字段] cookie http only属性
    }
    

    3.读取cookie

    读取cookie主要通过echo.Context上下文对象的Cookie函数进行操作。
    例子:

    // Handler
    func(c echo.Context) (err error) {
        //根据cookie名,获取cookie, cookie存在则返回http.Cookie结构体
        cookie, err := c.Cookie("age")
    	if err != nil {
    		return err
    	}
    	
    	//打印cookie名
    	fmt.Println(cookie.Name)
    	//打印cookie值
    	fmt.Println(cookie.Value)
      return c.String(http.StatusOK, "cookie操作")
    }
    

    一次性查询所有cookie:

    // Handler
    func(c echo.Context) (err error) {
        //通过c.Cookies函数,查询所有cookie
        //这里通过循环语句打印所有cookie的名字和值
        for _, cookie := range c.Cookies() {
    		fmt.Println(cookie.Name)
    		fmt.Println(cookie.Value)
    	}
      return c.String(http.StatusOK, "cookie操作")
    }
    

    4.删除cookie

    删除cookie本质上是通过设置cookie的过期时间无效,让cookie立刻失效。
    例子:

    // Handler
    func(c echo.Context) (err error) {
        //初始化cookie对象
        cookie := new(http.Cookie)
        //删除cookie只需要设置cookie名字就可以
    	cookie.Name = "age"
    	//cookie有效期为-1秒,注意这里不能设置为0,否则不会删除cookie
    	cookie.MaxAge = -1
    	
    	//设置cookie
    	c.SetCookie(cookie)
      return c.String(http.StatusOK, "cookie操作")
    }
    
  • 相关阅读:
    CDN缓存服务器现状,squid、nginx、trafficserver、ATS性能测试
    [钉钉通知系列]Jenkins发布后自动通知
    查税号,税号查询,纳税人识别号查询
    体验万象优图鉴黄服务
    红象云腾
    我眼中的领域驱动设计
    手工DIY:手机变身扫描仪_极客迷
    【CZURET-16】成者科技(CZUR)ET16智能扫描仪OCR文字识别书籍文档票据零边距高速A3A4高拍仪高清1600万像素【行情 报价 价格 评测】-京东
    技术漫谈 | 使用docker-compose进行python开发
    饿了么的 PWA 升级实践
  • 原文地址:https://www.cnblogs.com/remixnameless/p/14318225.html
Copyright © 2011-2022 走看看