Cookie的过期时间为Session在微信浏览器失效
前言
最近一次迭代上线,结果临了上线当晚,被我无疑间发现一个bug,之前测试小伙伴没测出来。Cookie的过期时间为Session在微信浏览器失效
。.net framework webform 项目
因为项目历史比较复杂,也就是说他是一个膏药项目
其中有一个场景将用户的一个临时票据{token}存储与cookie中,服务端存储采用HttpCookie方式存储,cookie的过期时间没有设置;
HttpCookie jwtCookie = new HttpCookie("applicationJwt", tokenString)
{
Secure = true,
HttpOnly = false,
SameSite = SameSiteMode.Lax,
};
Response.AppendCookie(jwtCookie);
查看浏览器 默认过期时间为Session

度娘了下发现 当cookie的过期时间设置为Session之后,该cookie的生命周期基本个SessionStorage的一样,也就是关闭浏览器后失效。
本人也分别在Chrome Firefox Edge浏览器上进行验证,都通过了。
但在微信浏览器中却发现关闭浏览器窗口后,对应的cookie依然存在。
这就导致了,用户第二次打开微信浏览器中,发现对应的jwt依然存在。 就会直接通过jwt调用api,这时候就会报错401,而新开发的界面没有单独为401做额外处理。 导致该bug的产生。
解决方案:
1. 如需要微信浏览器的前提下设置cookie的话,一定要设置该cookie的过期时间。否则就会有问题。
2. 额外的补偿机制,比如报错后做额外的场景处理即可。
但最好的方案自然是推翻重做了,可惜是这是个业务很关心的膏药项目,但技术架构很老旧,属于一碰就碎,所以只能忍忍了。
Cookie的过期时间为Session在微信浏览器失效的更多相关文章
- 采用Asp.Net的Forms身份验证时,持久Cookie的过期时间会自动扩展
原文:http://www.cnblogs.com/sanshi/archive/2012/06/22/2558476.html 若是持久Cookie,Cookie的有效期Expiration属性有当 ...
- 采用Asp.Net的Forms身份验证时,非持久Cookie的过期时间会自动扩展
问题描述 之前没有使用Forms身份验证时,如果在登陆过程中把HttpOnly的Cookie过期时间设为半个小时,总会收到很多用户的抱怨,说登陆一会就过期了. 所以总是会把Cookie过期时间设的长一 ...
- ASP.NET MVC:Cookie 的过期时间在服务器端是获取不到的
现状 一旦 Cookie 在服务器端设置后,在后续的请求中是获取不到过期时间的,因为:Cookie 是存储和过期处理都是由客户端管理的,在后续的请求中,浏览器向服务器发送 Cookie 的时候就不包含 ...
- chrome会话cookie显示过期时间为1969-12-31T23:59:59.000Z
cookie不设置过期时间的话,为浏览器会话cookie,关闭浏览器自动删除cookie 但是在chrome浏览器下,cookie过期时间显示为“1969-12-31T23:59:59.000Z” 在 ...
- 封装cookie,自定义过期时间,domain,path
在使用Cookie进行存储的时候,遇到了许多不可思议的bug,特地标识出来,以作总结. 是这样一个项目,登录是放在官网进行操作的,而登录进入的是后台,后台和官网属于同一域名的不同目录,那么常规进行co ...
- Cookie的过期时间设置
https://pan.baidu.com/s/1ibUQhLt6ZgVyhVM6mnrtHg 密码:9psc
- 如何设置session过期时间为30分钟
今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识挺多, 特别适合考察 ...
- PHP session过期时间
如何设置一个严格30分钟过期的Session 今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看 ...
- C#如何设置session过期时间
1.操作系统 步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉 右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在 ...
- tornado设置cookie过期时间(expires time)
具体的tornado设置过期时间的东西, 我也是查资料才发现的, 现在就贴代码吧 用户登录之后, 设置cookie, 我使用set_secure_cookie的, 它默认是有个30天的过期时间, 导致 ...
随机推荐
- #dp,排列#LOJ 2743「JOI Open 2016」摩天大楼
题目 将互不相同的 \(n\) 个数重排,使得相邻两数差的总和不超过 \(L\) 的有多少种方式. \(n\leq 100,L\leq 1000\) 分析 对于排列的问题,有一种很妙的方法就是从小到大 ...
- 「Cnoi2020」Cirno's Easy Round
目录 前言 A 光图 分析 代码 B 向量 分析 C 高维 分析 D 四角链 分析 代码 E 领域极限 分析 代码 F 明天后的幻想乡 题目 前言 200分果断自闭,F是原题,所以就用原题算了 A,B ...
- Git 01 概述
版本控制 版本控制(Revision Control)用于在开发过程中管理文件修改历史,方便查看和备份. 它的作用如下: 实现跨区域多人协同开发. 追踪和记载一个或者多个文件的历史记录. 组织和保护你 ...
- Windows系统自定义盘符图标
记录一个小知识: 自定义Windows系统盘符的图标,其实这个东西很简单,就像设置U盘的图标一样 首先准备一张ico图片,如果没有ico图片,只有jpg或其他格式的,可以使用这个在线转ico的网站,把 ...
- HarmonyOS开发者创新大赛总决赛结果公布
原文:https://mp.weixin.qq.com/s/I-AofLNY72_CtnHWg2k-Bw,点击链接查看更多技术内容. 2021 年 10 月 22 日第二届 HarmonyOS 开发者 ...
- Lattice下载器高速编程器HW-USBN-2B fpga仿真器ispdown烧录器
1.概述 HW-USBN-2B 编程烧录Lattice所有芯片,速度非常快.支持Lattice FPGA芯片在线稳定仿真.烧录.加密,支持Lattice CPLD烧录.支持外部配置FLASH.PROM ...
- ImageJ软件使用教程(二):图像测量
目录 图像比例尺 加载图像 设置比例尺 标注比例尺 测量长度面积 测量长度 测量面积 参考资料 图像比例尺 使用ImageJ软件测量图像中的长度.面积等信息时,需要先设置图像的比例尺,比例尺用于将图像 ...
- 使用JSZip实现在浏览器中操作文件与文件夹
1. 引言 浏览器中如何创建文件夹.写入文件呢? 答曰:可以借助JSZip这个库来实现在浏览器内存中创建文件与文件夹,最后只需下载这个.zip文件,就是最终得结果 类似的使用场景如下: 在线下载很多图 ...
- Java面试题:请谈谈对ThreadLocal的理解?
ThreadLocal是一种特殊的变量存储机制,它提供了一种方式,可以在每个线程中保存数据,而不会受到其他线程的影响.这种机制在多线程编程中非常有用,因为它允许每个线程拥有自己的数据副本,从而避免了数 ...
- 科普达人丨一图看懂阿里云ECS
简介: 建议收藏 原文链接:https://click.aliyun.com/m/1000363154/ 本文为阿里云原创内容,未经允许不得转载.