Jwt Aurelia刷新访问令牌并重新发送失败的请求
我正在使用Aurelia和JWT身份验证,并希望在访问令牌过期时重新刷新它。刷新访问令牌后,应重新执行失败的请求。如果刷新令牌也已过期,则应将用户导航到登录页面 我目前在Jwt Aurelia刷新访问令牌并重新发送失败的请求,jwt,aurelia,refresh-token,Jwt,Aurelia,Refresh Token,我正在使用Aurelia和JWT身份验证,并希望在访问令牌过期时重新刷新它。刷新访问令牌后,应重新执行失败的请求。如果刷新令牌也已过期,则应将用户导航到登录页面 我目前在main.ts .withInterceptor({ request(request) { console.log(`Requesting ${request.method} ${request.url}`); return request; },
main.ts
.withInterceptor({
request(request) {
console.log(`Requesting ${request.method} ${request.url}`);
return request;
},
response(response): Response {
if(response.status == 401 && !localStorage.getItem('isRefreshingToken')){
if(getRefreshToken()){
localStorage.setItem('isRefreshingToken', "true");
let authService = new AuthService(http);
authService.refreshToken().then(success => {
localStorage.removeItem('isRefreshingToken');
console.log("refresh", success);
//re-execute failed request
}).catch(failed => {
localStorage.removeItem('isRefreshingToken');
//refresh_token is also expired so go to login page
});
} else {
//refresh_token is also expired so go to login page
}
}
console.log(`Received ${response.status} ${response.url}`);
return response;
}
});
刷新部分可以工作,但我不知道如何在拦截器中重定向(这可能吗?/应该这样做吗?)。还有如何重新执行失败的请求
我尝试了Google和Aurelia文档,但没有得到我想要的答案。有人能给我指出正确的方向吗?这是一次公关合并。您应该能够在fetch client上使用重试功能,可以试试吗?@bigopon这看起来很有希望,谢谢。如果它真的适合我,我会很快报告的。