Cookie提前过期并保存在Chrome中

prdp8dxp  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(97)

我的服务器是GoDaddy服务器使用太平洋夏令时(-7:00)。我的饼干过期15分钟。
我看到当前GMT时间是2023年7月25日星期二上午5:35格林威治标准时间(GMT),服务器中的时间现在是2023年7月24日下午10:35 
在我的ASP.NETCore应用程序中,当我设置一个cookie时,它设置一个cookie,它设置为

_Gex.Application=chunks-2; expires=Tue, 25 Jul 2023 05:50:54 GMT;

字符串
但在浏览器中,此Cookie不会保存在Chrome中。如果我把时间增加到2天,它就能工作了。

bfrts1fy

bfrts1fy1#

我们知道C#中的DateTime.Now()获取当前服务器的时间,Javascript中的Date()获取客户端的时间。
如果访问网站的用户来自不同的时区,那么我认为有必要计算当前用户的设备时间与服务时间的偏移。
我们可以在用户登录时通过Date()方法从浏览器设备获取当前用户时间,我们可以在login方法中添加逻辑计算偏移量,并创建新的Claim并存储。
然后,即使用户的设备时间错误,cookie也可以在15分钟后过期。
我们可以创建一个中间件来读取时间的偏移量并设置cookie过期时间。

相关问题