首页 > 其他分享 >无感刷新token令牌

无感刷新token令牌

时间:2023-12-11 15:48:44浏览次数:32  
标签:令牌 getters const 刷新 token error 无感 store

首先判断token是否过期

const isTokenExpired = () => {
  if (store.getters.getToken) { // 判断是否过期
    const payload = store.getters.getToken.split('.')[1]
    const decoded = JSON.parse(atob(payload))
    const now_time = Math.floor(new Date() / 1000)
    return now_time > decoded.exp //返回true则是过期
  }
}

设置一个axios请求刷新令牌得到新的token

const Getrefresh = async () => {
  try {
    const response = await axios.post('http://127.0.0.1:5000/refresh', {}, {
      headers: {
        Authorization: 'Bearer ' + store.getters.getRefreshToken
      }
    })
    if (response.status === 200) {
      store.dispatch('setToken', {
        token: response.data
      })
      return response.data
    }
  } catch (error) {
    console.error('刷新令牌请求失败', error)
    throw error // 抛出异常,由调用方处理
  }
}

在axios请求拦截器中设置

instance.interceptors.request.use(async function (config) {
  // 在发送请求之前做些什么
  if (isTokenExpired()) { // 判断过期后刷新令牌
    try {
      const token = await Getrefresh()
      // 刷新成功后重新发起请求
    } catch (error) {
      // 刷新失败,可以在这里处理跳转到登录页等逻辑
      throw new Error('Token 刷新失败')
    }
  }
  config.headers.Authorization = store.getters.getToken ? 'Bearer ' + store.getters.getToken : ''
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

标签:令牌,getters,const,刷新,token,error,无感,store
From: https://www.cnblogs.com/jaaks/p/17894559.html

相关文章

  • 双Token实现无感刷新登录状态
    基于access_token和refresh_token实现无感刷新登录状态双token原理 这是登录认证的流程:验证通过之后,将用户信息放到jwt中。 访问接口的时候带上jwt,在Guard里取出来判断是否有效,jwt有效的话才能继续访问:这种方式有个问题:jwt是有有效期的,我们设置的是7天,实际上为了安全......
  • 代码中公用生成使用token方法
    生成使用token引入pom<dependency>     <groupId>com.auth0</groupId>     <artifactId>java-jwt</artifactId>     <version>3.14.0</version>   </dependency>添加工具类packagecom.mashibing.interin......
  • 【漏洞分析】Reflection Token 反射型代币攻击事件通用分析思路
    在本篇文章中,我将通过一个攻击事件引出ReflectionToken攻击事件的一个通用分析思路。关于ReflectionToken的其他案例分析,可以参考BEVO代币攻击事件分析及复现一文。TomInu攻击事件TomInuToken是一个反射型代币reflectiontoken,于2023-01-26遭到黑客攻击,攻击者获利355......
  • Scope api1 not found in store. IdentityServer4.Validation.TokenRequestValidator:
    看明白了这个报错,说是scopeapi在授权服务器没有定义,但是一直不知道哪出错,我寻思也定义了这个资源来着但其实并没有,说的是scope不是说的resource,所以需要再定义一个Scope  ......
  • seafile获取token和文件夹ID
    获取tokencurl-d"[email protected]&password=tkv7zjV4P0Rq"http://xxxxxxxx:50018/api2/auth-token/双因素认证:curl-d"[email protected]&password=tkv7zjV4P0Rq" -H'X-SEAFILE-OTP:<token>......
  • 京东面试:说说Cookie、Session和Token的区别?
    东子作为目前传统电商三巨头之一(其他还有阿里巴巴和拼多多),其面试题的难度也中规中矩,总体来说没有其他两家面试难度高,当然薪资也没有其他两家薪资高。其中拼多多的薪资最为离谱,尤其是前几年,听说挖同行的开发人员,薪资可以开到原来薪资的两到三倍,真是变态(但是我喜欢)。东子的面试题......
  • 如何实现 token 加密
    以最常见的token格式jwt为例,token分为三段,分别是header、payload、signature。其中,header标识签名算法和令牌类型;payload标识主体信息,包含令牌过期时间、发布时间、发行者、主体内容等;signature是使用特定的算法对前面两部分进行加密,得到的加密结果。token有防篡改的......
  • GB28181视频监控平台LiteCVR调取登录接口获取token的操作步骤
    视频监控设备是安防行业的细分专业领域,近年来,随着计算机、网络、图像处理以及传输技术的飞速发展,视频监控技术也迎来质的飞跃,实现从“简单化”到“多元化”的发展。数以万计的监控摄像头遍布城市各个角落,为人们的安全带来有力保障。安防视频监控管理平台LiteCVR能在复杂的网络环......
  • react项目vite报错:UnhandledPromiseRejectionWarning: SyntaxError: Unexpected toke
    问题:vite报错:UnhandledPromiseRejectionWarning:SyntaxError:Unexpectedtoken'??='今天clone一个vite的项目,安装依赖后运行npmrundev报错:UnhandledPromiseRejectionWarning:SyntaxError:Unexpectedtoken'??='atLoader.moduleStrategy(internal/modules......
  • LLM 入门笔记-Tokenizer
    以下笔记参考huggingface官方tutorial:https://huggingface.co/learn/nlp-course/chapter6下图展示了完整的tokenization流程,接下来会对每个步骤做进一步的介绍。1.Normalizationnormalize其实就是根据不同的需要对文本数据做一下清洗工作,以英文文本为例可以包括删除......