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操作")
    }
    
  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/remixnameless/p/14318225.html
Copyright © 2011-2022 走看看