阅读 661

自动登录与 token 过期

为了使用户登录体验更友好,之前做了个自动登录的优化。

实现方式为:在用户登录成功时,将 token 存入 cookie ;当用户下次来到本网站,读取 cookie 中的 token 时,自动登录。退出登录时则清空 token。

看起来很简单,而且对用户很友好

但是今天发现了一个漏洞,我本地 cookie 有效时间存的是 30 天,如果后端 token 的有效期和我存的时间不一致会发生什么?当用户某次自动登录时,响应拦截器发现 token 过期了,会把用户踢到登录页,然后登录页发现 cookie 中存了 token ,又会自动登录进去;进入系统后响应拦截器发现 token 过期了,又将用户踢去登录页...

死循环就这样发生了

怎么解决呢,很简单,在响应拦截器 401 时清除 token ,这样就不会存在本地存有过期 token 的问题了。

image.png

这个坑解决起来很简单,其实如何发现问题才是关键。平时还是得心思缜密一点。

文章分类
前端
文章标签