背景:系统中的菜单均带权限,权限相关信息为请求接口后保存在cookie中的
重现步骤:修改系统时间,并且使用系统后,不关闭浏览器再次调整时间为当前时间,登录时显示无权限跳转;
原因分析:使用本地时间设置的cookie,而实际是通过服务器时间判断是否过期,修改时间过大时,会使cookie过期,造成cookie无法设置的问题。系统中将权限存在cookie中的,最后获取到的用户权限为空,造成了登录时显示无权限跳转;
参考资料:cookie设置的过期时间是以服务器时间为基准,在浏览器得到服务器的任何HTTP响应头后会将浏览器的时间与服务器同步.而使用new Date()获取的本地时间并不准确.与服务器相差很大.本地时间可被客户修改.如果cookie使用本地时间可被人利用实现永久免登陆验。
解决:关闭浏览器后再次打开登录即可,此时为会话级cookie,关闭浏览器时失效