在Gin框架中,使用ctx.SetCookie()方法来设置Cookie。下面是一个具体的实现示例:
func setCookie(c *gin.Context) {
// 设置Cookie的参数和值
c.SetCookie("my_cookie", "example value", 3600, "/", "localhost", false, true)
// 其他逻辑
}
在这个例子中,我们使用c.SetCookie()方法来设置Cookie。方法接收的参数如下:
- 第一个参数是Cookie的名称。
- 第二个参数是Cookie的值。
- 第三个参数是Cookie的过期时间(以秒为单位)。在这个例子中,设置Cookie的过期时间为3600秒(即1小时)。
- 第四个参数是Cookie的路径,指定Cookie可用的路径。在这个例子中,我们将其设置为根路径 “/”。
- 第五个参数是Cookie的域,指定Cookie可用的域名。在这个例子中,我们将其设置为 “localhost”,表示只能在本地测试环境使用。
- 第六个参数是一个布尔值,指示是否使用HTTPS发送Cookie。在这个例子中,我们将其设置为false。
- 第七个参数是一个布尔值,指示是否启用SameSite属性。在这个例子中,我们将其设置为true。
通过这样设置,即可在响应中将Cookie发送给客户端,客户端会自动存储并在后续的请求中发送回服务器。
视图(view template)

在控制器中 设置 Cookie 值;
func (con AdminControllers) Views(c *gin.Context) {
c.SetCookie("username", "王二妹", 3600, "/", "localhost", false, true)
c.HTML(http.StatusOK, "admin/views/index.html", gin.H{
"title": "views页面",
})
}
过期时间后cookie 是否存在?
答案: 当一个 Cookie 的过期时间到达后,浏览器将不再发送该 Cookie 到服务器。换句话说,该 Cookie 在浏览器中被认为是过期的,不再被浏览器传输。
尽管浏览器不再发送过期的 Cookie,但该 Cookie 可能仍然存在于客户端的 Cookie 存储中。不同的浏览器有不同的行为,有些浏览器会在过期后立即删除该 Cookie,而有些浏览器会保留该过期 Cookie 直到清除浏览器缓存或者用户主动删除它。
在服务器端的代码中,你无法直接检查客户端的 Cookie 存储。服务器只会接收到浏览器发送的有效 Cookie(即未过期的 Cookie)。
因此,即使过期时间已

文章介绍了在GinWeb框架中如何设置和删除Cookie,以及利用gin-contrib/sessions包管理Session。通过示例代码展示了设置Cookie的参数,包括名称、值、过期时间等,并解释了如何通过设置过期时间为负值来删除Cookie。此外,还提到了Session的使用,包括引入第三方cookieStore中间件和在不同路由控制器中使用Session的示例。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



