一个小时后,aws-amplify Auth.currentSession()没有给出刷新的令牌

时间:2018-11-21 06:19:56

标签: javascript aws-amplify

您的问题与哪个类别有关?

AWS放大自动处理刷新令牌

您正在使用什么AWS服务?

aws-amplify

提供其他详细信息,例如代码段

axios.interceptors.request.use(function(config) 
{ return Auth.currentSession() .then(session => { // User is logged in. 

  Set auth header on all requests 
  let accessToken = session.idToken.jwtToken; 

  axios.defaults.headers.common["Authorization"] = accessToken; 
  return Promise.resolve(config); })
   .catch(() => { 
  // No logged-in user: don't set auth header 
  return Promise.resolve(config); 
}); 
});

这是我现在正在使用的拦截器请求,以获取最新的有效令牌,而与总时间无关,因为用户以#446身份登录,而aws-amplify文档指出它正在内部自动刷新令牌,{{ 1}}每次都会为您提供最新的有效jwtToken。

但是我遇到的是:我登录:Auth.currentSession()一直给我登录时收到的jwtToken。一个小时后,令牌已过期,Auth.currentSession()仍在给这个先前过期的令牌,这导致服务器向我发送了401。我该如何处理它?如何保持获取最新的有效刷新的jwtToken?我使用的是错误的还是错误的?

1 个答案:

答案 0 :(得分:0)

这个答案对您来说可能为时已晚,但是如果其他任何人在此线程上绊跌,您可能正在使用“令牌”作为您的授权授予流程。请改用“代码”。别忘了在Cognito控制台中进行更改。选择授权码授予,而不是隐式授予