Перенаправить на страницу входа, если сервер возвращает ответ 401
Как я могу перехватить ответ конечной точки сервера и перенаправить приложение aurelia на страницу входа в систему, если ответ 401?
Я попытался "withInterceptor(responseError() {...})" метод конфигурации aurelia-fetch-client, но я не могу вернуть "новый Redirect(loginPage)"...
У кого-нибудь есть идеи, как это сделать?
1 ответ
Решение
Вот пример:
import { HttpClient } from 'aurelia-fetch-client';
import { inject } from 'aurelia-framework'
import { Router } from 'aurelia-router'
@inject(HttpClient, Router)
export class UserService {
http
router
constructor(http, router) {
this.http = http
this.router = router
this.http.configure(config => {
var self = this;
config
.withInterceptor({
responseError(response) {
if (response.status === 401) {
self.router.navigateToRoute('login')
}
return response; // you can return a modified Response
},
});
});
}
@Moustachiste исправляет ту же проблему с этим подходом:
вводить должно быть так
constructor(
// private _router: Router
@lazy(Router) private _router: () => Router
)