react 中401问题-整体说明 实现无感刷新

本文详细介绍了React应用中遇到401错误的场景,如未授权操作和token过期,并探讨了refresh_token和token的角色。重点在于如何通过axios响应拦截器实现401错误的无感刷新,确保用户在token过期后能够自动获取新token,而不需要手动重新登录。同时,提到了利用历史记录进行非组件内路由跳转的解决方案。
摘要由CSDN通过智能技术生成

401错误的场景

  1. 未登陆用户做一些需要权限才能做的操作(例如:关注作者),代码会报出401错误。这种情况下,应该让用户回到登陆页。

  2. 登录用户的token过期了

整体目标是:通过axios响应拦截器来处理401问题。

refresh_token和token的作用

  • token:

    • 作用:在访问一些接口时,需要传入token,就是它。

    • 有效期:2小时(安全)。

  • refresh_token

    • 作用: 当token的有效期过了之后,可以使用它去请求一个特殊接口(这个接口也是后端指定的,明确需要传入refresh_token),并返回一个新的token回来(有效期还是2小时),以替换过期的那个token。

    • 有效期:14天。(最理想的情况下,一次登陆可以持续14天。)

401问题-思路-响应拦截器

axios中提供了响应拦截器功能:所有从后端回来的响应都会集中进入响应拦截器中。所以,我们可以在响应拦截器中去写代码来统一解决。

 由于这里涉及到非组件内路由跳转,所以需要提前封装独立的history 这里可以看我

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值