!!!新人入门笔记,全为在部分网站资料支撑下的实验和猜测,不能保证正确性。!!!参考代码来源:Cookie和Session | 李文周的博客 (liwenzhou.com)https://www.liwenzhou.com/posts/Go/Cookie_Session/
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/cookie", func(c *gin.Context) {
cookie, err := c.Cookie("gin_cookie") // 获取Cookie
if err != nil {
cookie = "NotSet"
// 设置Cookie
c.SetCookie("gin_cookie", "test", 3600, "/", "localhost", false, true)
}
fmt.Printf("Cookie value: %s \n", cookie)
})
router.Run()
}
c.SetCookie为创建cookie,里面各个参数的含义:
1、"gin_cookie":cookie的名字
2、"test":cookie名字对应的值
(cookie, err := c.Cookie("gin_cookie") :以名字为依据寻找对应值并将值放入参数中,当没有对应名字的cookie时err会报错,当以上两个参数为汉字时会无法生成cookie)
3、3600:生效时间,到时间时效,为负数时关闭页面失效。
4、"/":可以访问的有效路径,以/结尾,比如/1/2/可访问/1/2/、/1/2/3/等,但不能访问/1/。
5、"localhost":可以生效的域,比如127.0.0.1可以在127.0.0.1:3000/index生效
6、 false 7、true:关于传输与安全的值
故以上代码第一次运行后,参数cookie值为NotSet,第二次为test
cookie文件一旦生成将会放入本地,因此可作为登陆依据进行运用(比如当登陆成功后生成cookie文件,在其他网页中加入检验是否有对应cookie的中间件,以此作为登陆依据)