Gin 中的Cookie

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Gin 中的Cookie

## cookie 概述 1、HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。如果我们要实现多个页面之间共享数据的话我们就可以使用Cookie 或者Session实现。 2、● cookie 是存储于访问者计算机的浏览器中。可以让我们用同一个浏览器访问同一个域名的时候共享数据。 ## cookie一般用来做什么? 1、在同一个项目中,更多的是需要保持其登录状态的!,cookie一般就是用来做这个。 2、cookie还会保存记得浏览器浏览记录 3、使用智能推荐算法,猜你喜欢 4、类似的购物车功能

## 设置和获取 Cookie ### 设置cookie

go c.SetCookie(name, value string, maxAge int, path, domain string, secure bool, httpOnly bool) 1、name:相当于key

2、value

3、maxAge:过期时间。如果不想设置,则为nil

4、path:cookie的路径

5:domain :cookie 的路径 Domain 作用域,如果是本地调试配置成 localhost , 正式上线则配置成域名

6、secure:,当 secure 值为 true 时,cookie 在 HTTP 中是无效,在HTTPS 中才有效

7、httpOnly:是微软对 COOKIE 做的扩展。如果在 COOKIE 中设置了“httpOnly”属性,则通过程序(JS 脚本、applet 等)将无法读取到 COOKIE 信息防止XSS 攻击产生

获取cookie

go cookie, err := c.Cookie("name")

在路由中的应用

```go r.GET("/login", func(c *gin.Context) { c.SetCookie("usrename", "张三", 3600, "/", "localhost", false, true) c.String(200, "登录页") })

r.GET("/user", func(c *gin.Context) { username, _ := c.Cookie("usrename") c.String(200, "用户-"+username) }) ```

多个二级域名共享 cookie

1、分别把 a.abc.com 和 b.abc.com 解析到我们的服务器

2、我们想的是用户在 a.abc.com 中设置 Cookie 信息后在 b.abc.com 中获取刚才设置的cookie,也就是实现多个二级域名共享 cookie

设置二级域名cookie

go c.SetCookie("usrename", "张三", 3600, "/", ".abc.com", false,) 只需把path写模糊就行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值