解决Gin框架下 浏览器(chrome)在setcookie()后不能成功携带cookie的问题

article/2025/9/29 3:42:41

参考gin官网的文档给出的代码:地址在https://gin-gonic.com/zh-cn/docs/examples/cookie/

func CookieMiddleWare() gin.HandlerFunc {return func(c *gin.Context) {cookieValue, err := c.Cookie("cookie")if err != nil {//c.AbortWithStatusJSON(403, gin.H{"message": "get cookie failed..."})fmt.Printf("err happened :%v\n", err)code := utils.GenInviteCode("cookie", 8)c.SetCookie("cookie", code, 3600*24*30, "/", "localhost", false, false)}fmt.Println(cookieValue)c.Next()}
}

打怪历程:
首先按以上代码跑服务 然后在浏览器访问本地务:http://127.0.0.1:8090/api/auth/xxx

在这里插入图片描述
在这里插入图片描述
这个时候浏览器端是没有进行cookie存储的。
在这里插入图片描述
刷新,再次发请求,查看请求头的Requests Headers 里是没有cookie这一项的。失败!
回想到samesite相关知识,于是添加samesite设置:

func CookieMiddleWare() gin.HandlerFunc {return func(c *gin.Context) {cookieValue, err := c.Cookie("cookie")if err != nil {//c.AbortWithStatusJSON(403, gin.H{"message": "get cookie failed..."})fmt.Printf("err happened :%v\n", err)code := utils.GenInviteCode("cookie", 8)//setSameSite()要在setCookie()前边, 使用setSameSite()方法的条件是:要将 cookie的secure属性设置为true//c.SetSameSite(4)c.SetSameSite(http.SameSiteNoneMode)c.SetCookie("cookie", code, 3600*24*30, "/", "localhost", false, false}	}

还是会有那个小三角提示符 认真读了一下:是domain不对, 于是在github上参考了一个三哥的代码:github.com,将domain改为带协议和端口的:“http://localhost:8090”
在这里插入图片描述
在这里插入图片描述
这次的 Set-Cookie: 里没有domain的相关的内容了,然后末尾的小黄三角符号又说 如果启用SameSite就要将cookie的Secure选项选为true 。

c.SetSameSite(http.SameSiteNoneMode)
c.SetCookie("cookie", code, 3600*24*30, "/", "http://localhost:8090", true, false)

在这里插入图片描述
发现没有小黄三角符号了
再次查看 application里的cookie
在这里插入图片描述
已经有值了。刷新 ,再次请求
在这里插入图片描述
requests headers里已经携带cookie去访问了。问题解决!
同时思考一下 这是使用了SameSite相关设置,如果不设置 能否正常携带cookie访问呢?
答案是肯定的:
其实只要domain配置对,不启用Secure和samesite也是可以的。
我们在err条件外将cookie生存时间设置为-1,刷新浏览器,将上次的cookie杀死:

//生存时间设置为-1。杀死后记得注释掉
c.SetCookie("cookie", "code", -1, "/", "http://localhost:8090", false, false)

然后尝试不启用Secure和不配置samesite的访问:

func CookieMiddleWare() gin.HandlerFunc {return func(c *gin.Context) {cookieValue, err := c.Cookie("cookie")if err != nil {//c.AbortWithStatusJSON(403, gin.H{"message": "get cookie failed..."})fmt.Printf("err happened :%v\n", err)code := utils.GenInviteCode("cookie", 8)c.SetCookie("cookie", code, 3600*24*30, "/", "http://localhost:8090", false, false)}fmt.Println(cookieValue)c.Next()}
}

在这里插入图片描述
在这里插入图片描述
可以看到 浏览器 已经存下来了,再次刷新访问:
在这里插入图片描述
正常携带!
总结:
一: 将domain设置正确,端口号一定要加上,协议可以不加。
二:(也是要在一的前提下)配置cookie Secure选项 为ture,并配置samesite级别为:http.SameSiteNoneMode 或 4
三:(也是要在一的前提下)配置cookie Secure选项 为ture,并没有配置samesite。我测试也是可以携带的


其实之前写java的时候 cookie session这些都研究过了。但是好久没复习,也没写记录。都已经还给时间了 ,所以解决问题的时候一定要记得做笔记📒 !!!
ps:这次虽然没有手动在浏览器里进行任何设置,但是chrome cookie相关路径要知道:chrome://settings/cookies?search=cookie


http://chatgpt.dhexx.cn/article/Nxeeeeow.shtml

相关文章

cookie的get、set方法封装 domain、path 属性

cookie的get、set方法封装 setCookie 封装: 原生赋值方法: document.cookienamewk 注:cookie在静态页面中是空的,无法使用;必须在web服务器部署下才可以使用。 /*** 设置cookie* param name 键* param val 值* pa…

php setcookie

先看服务器端代码test.php&#xff1a; <?php$value "my cookie";setcookie("TestCookie",$value);echo "my cookie is".$value;?>1. 访问抓包&#xff1a; 2. 返回包&#xff1a; 可以看到返回包里多了一个Set-Cookie字段 浏览器&a…

HTTP中的Cookie、Set-Cookie

请求头Cookie、响应头Set-Cookie 但是&#xff0c;我们又需要在不同请求-响应之间&#xff0c;来区分请求-响应是不是同一个用户发起的。 比如&#xff1a;用户购买越多&#xff0c;折扣越多的活动&#xff0c;就需要我们分辨出不同请求-响应之间的逻辑关系 // 专门用来发凭证&…

php 中cookie的简介,setcookile() 的用法,如何理解cookie

最近心里想着学更新的技术&#xff0c; 了解更多的框框。但是回过头来&#xff0c;我想学一下最基础的东西&#xff0c;因为&#xff0c;一路走来&#xff0c; 技术都是自学来的&#xff0c;肯定还有很多瑕疵的&#xff0c; 比如&#xff0c; 什么是http协议&#xff0c;虽然是…

cookie和set-cookie的区别及token值

什么是cookie cookie是一段文本,格式key-value cookie鉴权原理 1.当客户端第一次访问服务器端时,服务器会成cookie信息,并且在响应头的set-cookie里面把生成的cookie信息发送给客户端 2.当客户端第2-N次访问服务端的时候,那么客户端就会在请求头的cookie带上cookie信息,从而实现…

数学物理方法 高教 第四版 课后习题答案

数学物理方法 高等教育出版社 第四版 课后习题答案 课后习题答案下载地址 链接&#xff1a;https://pan.baidu.com/s/1KqePoJ8AXb4vAxXadOCfCg 提取码&#xff1a;73um 如果链接失效扫一扫右侧&#xff0c;回复 数学物理方法答案 即可免费获取 百度文库所有文档原格式下载方法…

四年级计算机上册说课ppt,四年级上册《画长方形》说课稿

四年级上册《画长方形》说课稿 《画长方形》是20**年经过教育部审定的人教版《义务教育教科书》四年级上册第五单元《平行四边形和梯形》第4课时的内容&#xff0c;我将从教材解读和教学实施两部分进行说课。 一、教材解读 本节课是人教版小学数学四年级上册第5单元《平行四边形…

python编程 上册第4版_统编版四年级语文上册第1课观潮视频+课件+练习

文末有打印资料的方法 往期回顾&#xff1a; 2020秋部编版四年级上册语文教材解析(附各单元分析)&#xff0c;可下载&#xff01; 【暑假预习 】 部编版语文四年级上册课堂笔记 部编版四年级语文上册1~8单元知识梳理&#xff0c;可下载预习&#xff01; 2020秋人教版四年级上册…

高等数学(第七版)同济大学 总习题二 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 总习题二 1. 在“充分”“必要”和“充分必要”三者中选择一个正确的填入下列空格内&#xff1a; \begin{aligned}&1. \ 在“充分”“必要”和“充分必要”三者中选择一个正确的填入下列空格内&#xff1a;&\end{align…

数学第一单元计算机思维导图,七年级下册数学第一单元思维导图

提到下册,大家应该都不陌生,有人问数学四年级下册第一单元测试卷,还有人想问七年级下册数学整式的乘,这到底怎么回事呢?实际上七年级数学丰富的图形呢,今天小编就与大家分享七年级下册数学第一单元思维导图,欢迎大家参考和学习。 七年级下册数学第一单元思维导图 七年级…

同济大学高等数学上册第四章不定积分以及每日一题

第四章、不定积分 知识逻辑结构图 考研考试内容 原函数和不定积分的概念&#xff08;被积函数的要求、连续只是原函数存在的充分条件&#xff09;&#xff0c;不定积分的基本性质&#xff08;线性、和差与求导互逆&#xff09;&#xff0c;基本积分公式&#xff0c;不定积分的…

冀教版三年级计算机教学计划,冀教版数学小学三年级上册教学计划

冀教版数学小学三年级上册教学计划 篇一 一、本学期教学的 目的&#xff0c;任务与具体要求&#xff1a; (1) 本学期教学的目的 1 、认识生活中的大数&#xff0c;正确读写出中间或末尾有 0 的四位数&#xff0c;并会比较四位数的大小。 2 、会计算两、三位数乘一位数&#xff…

七年级上册数学计算机教学视频,人教版初中数学七年级上册

目录&#xff1a; 1.2  有理数 1.3  有理数的加减法 实验与探究  填幻方 阅读与思考  中国人最先使用负数 1.4  有理数的乘除法 观察与猜想  翻牌游戏中的数学道理 1.5  有理数的乘方 数学活动 小结 复习题1 第二章  整式的加减 2.1  整式 阅读与思考  数字1与字母X的…

四年级计算机上册课程标准,新课程标准人教版四年级上册数学全册教案设计

一、教学目的任务&#xff1a; (思想教育、“双基”教学、能力培养、智力开发、方法指导、习惯产生及培优、促中、转差的目标) 这一册教材的课堂目标是&#xff0c;让学员自主研究、合作&#xff0c;从而让学生&#xff1a; 1&#xff0e;认识计数单位“十万”“百万”“千万”…

四年级上册数学计算机笔记,读书笔记:最新人教版四年级上册数学总复习讲义...

四年级上册 教学重点&#xff1a;掌握制作统计图的方式跟方法。 教学难点&#xff1a;准确客观地体现统计数据。 教学过程&#xff1a; 一、复习指导 (1)什么是复式条形统计图&#xff1f;它与单式条形统计图有哪些区别与联系&#xff1f; (2)怎样制作复式条形统计图&#xff1…

小学数学四年级上册计算机教案,新人教版四年级上册数学教案

新人教版四年级上册数学教案 一、学生基本情况分析 经过三年级下学期的学习&#xff0c;学生的思维已经开始由具体形象思维过渡到抽象思维&#xff0c;对周围事物的认识较以前上升了一个层次&#xff0c;已经会用归纳概括的方法认识事物及解决问题&#xff0c;学生已经具备了初…

3.样条曲线之B样条曲线

B样条曲线 B样条是使用更广泛的逼近样条类。B样条有两个贝塞尔样条所不具备的优点&#xff1a;1、B样条多项式次数可独立于控制点数目&#xff08;有一定限制&#xff09;&#xff1b;2、B样条允许局部控制曲线或曲面。缺点是B样条比贝塞尔样条更复杂。我们可以把沿B样条曲线的…

曲线理论-详解Bezier曲线、B样条曲线、NURBS曲线

文章目录 曲线理论-详解Bezier曲线、B样条曲线、NURBS曲线样条曲线Bezier曲线&#xff0c;B样条曲线 &#xff0c;NURBS曲线Bezier曲线B样条曲线参考内容 曲线理论-详解Bezier曲线、B样条曲线、NURBS曲线 一直使用三维软件绘制曲线曲面&#xff0c;然而对曲线曲面的基本理论并…

样条曲线(参数曲线)曲率

曲率计算公式 设参数曲线C(u): C ( u ) ( x ( u ) , y ( y ) , z ( u ) ) C(u) (x(u),y(y),z(u)) C(u)(x(u),y(y),z(u)) 曲线曲率表达为&#xff1a; k ( u ) ∣ C ′ ( u ) C ′ ′ ( u ) ∣ ∣ C ′ ( u ) ∣ 3 ( 1 ) k(u)\frac{|C^{}(u)\times C^{}(u)|}{|C^{}(u)|^…

计算机图形学-样条曲线Spline

内容来自《计算机图形学》第四版 第14章-样条表示 目录 [1] 样条的种类1. 插值样条2. 逼近样条 [2] 参数连续性条件[2] 几何连续性条件[3] 样条描述1. 列出一组施加在样条上的边界条件2. 列出描述样条特征的行列式3. 列出一组混合函数或基函数 [4] 三次样条插值方法1. 自然三次…