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天的过期时间, 导致 ...
随机推荐
- #线段树,二分#洛谷 2824 [HEOI2016/TJOI2016]排序
题目 分析 这排序就很难实现,考虑定一个基准,小于该基准的视为0,否则视为1, 那排序可以看作将0和1分开,这就很好用线段树实现了 如果该位置是0,说明这个基准太高,显然可以用二分答案(基准),那么时 ...
- #Dijkstra,二进制拆位#洛谷 5304 [GXOI/GZOI2019]旅行者
题目 分析(\(logk\)次Dijkstra) 首先为什么\(O(nklogn)\)的多次\(dijkstra\)为什么会TLE, 因为中间有许多的冗余状态,即使两点求出的路径是最短的,它也不一定是 ...
- GitHub/GitLab 为不同的项目修改提交名字 user.name 和邮箱 user.email(附:批量处理脚本)
背景 大疫情的背景下,家里的电脑需要同时支撑自己和公司的项目,根据 GitHub/GitLab 网站的提交记录上看,其是根据邮箱来辨识用户的,所以有必要分别针对不同的项目设置不同的 Git 名字(us ...
- 密码学系列之:IDEA
密码学系列之:IDEA 目录 简介 IDEA简介 IDEA原理 IDEA子密钥的生成 简介 IDEA的全称是International Data Encryption Algorithm,也叫做国际加 ...
- 踩坑指南:入门OpenTenBase之监控篇
本次监控将采用Prometheus.Grafana可视化工具以及postgres_exporter对OpenTenBase进行全面监控和优化. 安装监控 Docker安装 1.Docker要求 Cen ...
- 一、Unity调用Xcode封装方法(工程引用文件)
1.Xcode新建Static Library 工程 (我起的名字是UnityExtend 可以在接下来的图中看到) 2.打包unity ios工程 unity打包ios 打出Xcode工程 3.打开 ...
- 给蚂蚁金服 antv 提个 PR, 以为是改个错别字, 未曾想背后的原因竟如此复杂!
前言 什么? 你不了解G2Plot? 没关系, 今天咱们要分享的内容和G2Plot的关系, 就像雷锋和雷峰塔的关系. 因此, 不必担心听不懂. 我一直觉得, 如果我写的文章有人看不懂, 那一定是我写的 ...
- HarmonyOS NEXT应用开发之MpChart图表实现案例
介绍 MpChart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI.本示例主要介绍如何使用三方库MpChart实现柱状图U ...
- 【ModelScope】5分钟让你在大火的多模态领域权威榜单VQA上超越人类
简介: ModelScope上开源了达摩院众多业界最强多模态模型,其中就有首超人类的多模态视觉问答模型mPLUG,小编从页面体验(一探).开发体验(二探).开放测试(三探)来探究多模态预训练模型能力. ...
- 阿里云云效发布研发协同工具,以新的产研协同工作方式助力实现BizDevOps
简介:2021云栖大会云效BizDevOps分论坛上,阿里云云效技术负责人陈鑫发布阿里云云效产品研发协同工具支撑ALPD理论,以新的产研协同工作方式助力实现BizDevOps. 编者按:10月21日 ...