在工作中我们经常使用令牌作为前后端交互通信的方式,令牌是为了保证数据传递之间的安全性,在岁月的长河中,我们想方设法的去提高用户体验,无感token就是其中一种,它能够让用户在无需登录的情况实现令牌的刷新,自己常用的有以下几种实现方案:
第一种:定时获取token
后端设置token为10分钟过期,我们通过写一个九分钟的周期性定时器,去定时去调用请求token接口,获取最新的token令牌,以此达到用户无感知的刷新token,同时也为保证了用户数据的私密性,当用户离开当前这个网站的时候,我们将定时器进行销毁,token令牌进行清空,缺点是定时器会引起内存消耗问题
第二种:双token方案
双token方案是指后端返回两个token,一个短期token,一个长效token,长效token是用于获取短期token的,短期token是用于获取数据的,当短期token过期的时候,后端会返回过期的状态码,然后前端再用长效token去请求获取短期token,这样保证了用户的数据安全性同时也实现了无感刷新token,只有当长效token失效的时候我们才让用户前去登录页面进行登录
第三种: 使用旧token去获取新token
当用户token过期的情况下,我们通过判断后端的状态码,然后拿旧token去获取一个新token再去请求数据,这样也可以去拿取数据,但是这种情况必须是用户的只要有一个在线的登录地,不能有其他登录地,否则会造成数据库的token存取出现问题
坚持努力,无惧未来!