当前位置: 首页 > 网络应用技术

意识到诱发的刷新令牌,我这样做

时间:2023-03-06 00:03:05 网络应用技术

  当前言最近进行需求时,它涉及登录令牌,并且该产品提出了一个问题:令牌可以在更长的时间内到期,我经常登录。

  前端:后端,您可以将令牌设置为更长的时间吗?

  后端:是的,但这是不安全的,您可以使用更好的方法。

  前端:什么方法?

  后端:给您令牌的界面,并定期刷新令牌

  前端:好的,让我考虑一下

  当令牌到期时,令牌会得到刷新,并且需要在没有刷新的情况下刷新前端,也就是说,当您刷新令牌时,必须感知并避免频繁登录。

  后端返回时间,前端判决令牌到期

  缺点:您需要为后端时间提供额外的时间;使用当地时间的判断。如果当地时间被篡改,尤其是当当地时间比服务器时间慢时,拦截将会失败。

  写一个计时器并定期刷新令牌接口

  缺点:废物资源,消费绩效,不建议。

  在响应拦截器中进行拦截,判断令牌的返回,请刷新令牌接口

  基本骨骼,用于拦截

  我们控制它是否正在通过变量iSrefresshighther。

  当第二次过期请求进来时,令牌是令人耳目一新的,我们首先将此请求存放到阵列队列中,找到一种在等待中提出此请求的方法,等待刷新刷新,然后尝试通过一个人。如何在等待中提出此请求?解决这个问题,我们必须使用Promise。将请求存入队列后,同时返回承诺,以便该诺言始终处于待处理状态(也就是说,不调用解决)。目前,此请求将等待。刷新请求返回的接口时,我们致电Resolve,然后一一尝试一下。最终代码: