最近在做一个项目, 其中一个需求是用户登陆的时候可以记住密码, 有效时间内可以不用输入用户名和密码, 相关信息自动填充到输入框, 用户直接点击登陆就可以了. 我想到的第一个方法就是用cookie, 用户登陆校验成功后, 将用户的信息保存到cookie中.
可是后来发现超过设置的cookie的最大期限, cookie仍然存在浏览器中, 查询后才知道, cookie的设置时间与服务器的时间时区有关, 我们设置cookie的时候一般使用的是本地时间, 查看请求header里面可以看到data, 这个时间和本地时间不一样的, 我们设置的cookie时间是以服务器中的这个时间为准的.
eg:
注意图片箭头指示位置时间, 当前时间2019/8/30 15:32, 而我们生成的cookie的最大时间为2019/8/30 07:34:52
这个时候已经超过了cookie的最大期限, 按理说它应该被浏览器自动清除了, 可是它还是存在, 这不恶心人吗. 我们再看下面这张图片
这个是用户登陆请求的api信息, 我们可以看到箭头指示位置的时间, 本地时间是15:32, 而服务器的时间才07:32, 我设置cookie的时候, 时间设置的约2分钟, 刚好和cooke的最大时间07:34吻合,
如果这样的话, 本地时间为15:34的时候, cookie就应该被浏览器自动清除了.
如上图所示, 果不其然. 到了cookie的最大期限后, cookie便会被浏览器自动清除的.