添加httponly标识的cookie是无法通过前端js获取的

今天遇到一个问题,项目中有一个需求要求每过一段时间对当前的cookie续期,保持用户的操作不过期。

一般情况下用户登录一个系统后,cookie的有效期会保持在半小时,一般不会太久,主要是为保证安全。

但是如果你的系统被其他系统通过iframe嵌入的情况下,如果你的有效期很短的话,有可能出现外面的系统没过期,但是你的系统过期了,此时可能会重定向到登录页面或者报错,那对用户来说体验就不是很好了。

针对这种情况,一般用户中心会提供一个需求的接口,通过这个接口可以针对当前的cookie进行续期,也就是说当你登录后会产生一个唯一cookie,后续前端每隔10分钟调续期接口去续期,可以延长cookie的有效期,以调接口的时候为起始时间,往后续期半小时,如果没执行说明用户已经离开这个系统。

在我们的项目中就出现一个问题,我们的续期接口的参数是当前登录用户的cookie,但是当用Js去获取cookie的时候发现无法获取,发现对应的cookie后面有一个httponly的标识。


后面了解到如果是有Httpoly的标识,是无法通过js获取到的,这个是浏览器的机制,在一定程度上提升安全了性能,但是它仍然会在发送请求的时候跟其他cookie带上。

所以其实不用单独把这个做一个请求的参数,只需要后端的接口在请求头中获取cookie就可以了。


本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):