永恒圣域先锋会

为什么要使用 refresh_token 刷新token

2025-10-25 11:17:20

refreshToken就是用来在accessToken过期以后来重新获取accessToken的

1、使用流程

登录成功获得 refresh token 并持久化通过 refresh token 请求刷新得到 access token 并临时储存请求业务接口使用 access tokenaccess token 过期或者快过期再次回到「 2 」refresh token 也过期则生命周期结束,需重新登录

2、使用场景

如果是一个前后端分离的项目,使用springsecurity+jwt这种,前端用户在登录以后,后端返回给前端一个accessToken,如果没有refresh token,又因为因为安全原因accessToken过期时间会设置的比较短,在accessToken过期以后,用户将会被强制重新登录,影响用户体验

而如果使用refresh Token,如果用户持续地访问这个网站,他们可以一直保持登录状态,而不需要定期重新登录

如果是业务服务器之间的相互调用,那么此时只用一个Access Token即可,强制重新登录影响不大,只不过是如果使用 Refresh Token 在获取新的 Access Token 的时候比直接重新登录会方便一小丢丢

3、从是否需要读取额外的状态来看

token 的过期时间一般会比 refeshToken 的过期时间短很多,保证 token 被盗取后无法持久的做坏事,通过 AccessToken 访问,只要通过签名校验合法即可通行,无需读取额外的状态来进一步确认是否撤销,当 AccessToken 过期以后再通过 RefreshToken 读取额外的状态(数据库 /缓存)确认是否继续签发

4、从安全程度来看

access token 有效期短 被盗损失更小 安全性更高

如果refresh token被盗了 想刷新access token的话 也需要提供过期的refresh token 盗取难度增加同时refresh token只有在第一次获取和刷新access token时才会在网络中传输,因此被盗的风险远小于access token 从而在一定程度上 更安全了一点

平衡车如何强制关机 2023汽车保值率排名完整名单,二手车保值率高的车排行榜