每次请求刷新token的时间

项目为springboot+vue前后端分离式
操作者在header携带token对后台进行请求,token有效期为30分钟。现需要实现:30分钟内操作者每次操作都将重新计时。

完全使用localStorage解决该问题。

在前端请求拦截器(request)配置

// request拦截器
service.interceptors.request.use(config => {
    if(localStorage.getItem('token')!==null) {
        //刷新token时间
        axios({
          url: 'http://8.140.22.207:8086/userInfo/refreshToken',
          headers: {
            'Content-Type': 'application/json;charset=utf-8',
            'Authorization':'Firstly ' + localStorage.getItem('token')
          },
          method: 'get',
        }).then(function(res){
          localStorage.setItem('token',res.data.msg);
        });
    }
    config.headers['Authorization'] = 'Firstly ' + localStorage.getItem('token')
    return config
  },
  error => {
  //  console.log(error)
    return Promise.reject(error)
  }
)

后台编写refreshToken(),即刷新token的方法。

整体来说就是先刷新再请求。

/* 刷新token*/
    @RequestMapping("/refreshToken")
    public AjaxResult refreshToken(HttpServletResponse response) {
        String token=response.getHeader("token");
        return AjaxResult.success(jwt.refreshToken(token));
    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Uniapp中,实现无痛刷新token可以通过以下步骤来完成。 首先,当用户登录后,服务器会返回一个access token和一个refresh token。access token通常具有较短的有效期,而refresh token具有较长的有效期。 接下来,在每次发起请求访问需要认证的接口时,前端都将携带access token请求的header中进行认证。 当access token即将过期时,前端可以通过拦截请求的方式,判断access token时间是否快要过期。 如果access token快要过期,前端会发送一个特殊的请求到服务器,携带refresh token请求刷新access token。 服务器收到刷新请求后,会验证refresh token的有效性。如果refresh token有效,则服务器会生成一个新的access token,并返回给前端。 前端在收到新的access token后,会将其存储起来,覆盖之前的旧token。 这样一来,前端就可以继续使用新的access token发起需要认证的请求,而无需用户重新登录。 需要注意的是,刷新token的过程需要保证请求的安全性,防止token被劫持或滥用。可以使用https协议来加密请求,避免信息泄露。 总结起来,Uniapp的无痛刷新token的实现主要依赖于refresh token机制。前端在判断access token即将过期时,发送刷新请求,服务器验证refresh token的有效性并生成新的access token,前端将新的access token存储起来,继续使用新的token发起请求,从而实现无痛刷新token
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悢七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值