参考链接:token有效期(JWT token过期后自动续期的解决方案)-万思特网
- 单token方案实现token续期
将 token 过期时间设置为15分钟;前端发起请求,后端验证 token 是否过期;如果过期,前端发起刷新token请求,后端为前端返回一个新的token;前端用新的token发起请求,请求成功;
如果要实现每隔72小时,必须重新登录,后端需要记录每次用户的登录时间;用户每次请求时,检查用户最后一次登录日期,如超过72小时,则拒绝刷新token的请求,请求失败,跳转到登录页面。
另外后端还可以记录刷新token的次数,比如最多刷新50次,如果达到50次,则不再允许刷新,需要用户重新授权。
=================================================================================================================================================
- 双token方案
登录成功以后,后端返回 access_token 和 refresh_token,客户端缓存此两种token;使用 access_token 请求接口资源,成功则调用成功;
如果token超时,客户端携带 refresh_token 调用token刷新接口获取新的 access_token;后端接受刷新token的请求后,检查 refresh_token 是否过期。
如果过期,拒绝刷新,客户端收到该状态后,跳转到登录页;如果未过期,生成新的 access_token 返回给客户端。客户端携带新的 access_token 重新调用上面的资源接口。
客户端退出登录或修改密码后,注销旧的token,使 access_token 和 refresh_token 失效,同时清空客户端的 access_token 和 refresh_toke