无感刷新Token技术是一种用于实现持久登录体验的关键技术,它通过在用户登录后自动刷新Token,以延长用户的登录状态,避免频繁要求用户重新登录。本文将介绍无感刷新token技术的原理和实现方式,帮助大家熟练掌握该技术。一、基本概念Token是一种用于身份验证和授权的令牌。
之前自用的项目中使用的是springsecurity权限管理框架,没有使用自定义token,因此是默认的cookie方式,突然有一天浏览器在跨域的情况下不支持cookie了,虽然可以更改浏览器的安全设置来解决,但这种方法治标不治本,治本还是要使用自定义token方式。
之前负责的项目报了一个问题,用户操作回退失效。我们的设计里,操作回退是回到操作前的状态。经过查看日志发现,用户之前的操作做了两次,也就是说提交操作的接口被调用了两次,导致之用户上一次的状态和这一次的状态是一样的,所以操作回退是没有问题的,问题出在了操作的接口被调用了两次。
因为我们不能通过http协议知道是哪个用户发出的请求,所以如果要知道是哪个用户发出的请求,那就需要在服务器保存一份用户信息,然后在认证成功后返回cookie值传递给浏览器,那么用户在下一次请求时就可以带上cookie值,服务器就可以识别是哪个用户发送的请求,是否已认证,是否登录过期等等。
同样也是由于Token的无状态性质,也导致了它最大的缺点就是,后端在一个Token的有效期内删除了Token或者是修改了其权限,那么这个删除操作或者是权限修改操作是无法立即生效,一般需要重新授权,或者是等到有效期过了之后才会生效。