Я использую Angular 6 и NodeJS (API).
Для аутентификации я использую токен сеанса JWT.При входе в систему я могу авторизовать токен и зайти на домашнюю страницу.Но при постоянном использовании приложения не поддерживается сессия.Срок действия токена истек 30 сек.Не сбрасывать токен для каждого запроса.
Использование HttpInterceptor для отправки токена каждого запроса.
Угловой код:
export class AuthInterceptor implements HttpInterceptor {
constructor(private router: Router) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (req.headers.get('No-Auth') == "True")
return next.handle(req.clone());
if (localStorage.getItem('userToken') != null) {
const clonedreq = req.clone({
headers: req.headers.set("Authorization", "Bearer " + localStorage.getItem('userToken'))
});
return next.handle(clonedreq)
.pipe(
tap(event => {
if (event instanceof HttpResponse) {
const elapsed = Date.now();
console.log(`Request for ${req.urlWithParams} took ${elapsed} ms.`);
}
}, error => {
console.error('NICE ERROR', error)
})
);
}
else {
this.router.navigateByUrl('/login');
}
}
}