在AngularJS SPA中使用刷新令牌

时间:2018-07-19 10:32:12

标签: angularjs jwt refresh-token

通过AngularJS中的刷新令牌请求新的JWT身份验证令牌的正确方法是什么?

我已经有了一个实现,该实现可以在每个API请求中检查会话是否需要刷新,如果需要,则从Web服务器请求一个新令牌。但是,如果页面一次发出3次呼叫,则它为每个呼叫请求一个新的刷新令牌,这似乎是不正确的-我认为它应该只将令牌更新一次。

是否有办法阻止其他呼叫,还是应该将刷新间隔放置而不通过拦截器执行?

拦截器请求方法

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

1 个答案:

答案 0 :(得分:1)

只需增强您的refreshSession方法,它就不会刷新几次。

var refreshPromise;

refreshSession: () => {
  if (!refreshPromise) {
    refreshPromise = $http.get(...);
    refreshPromise.finally(() => refreshPromise = null);
  }

  return refreshPromise;
}