Неправильно выходить из системы, когда пользователь меняет пароль, если только пользователь добровольно не решит выйти из системы со всех устройств: -
После того, как пользователь выйдет из системы, затем очистит localstorage и перенаправит для входа в систему как: -
Просто измените токен авторизации, когда пользователь обновит пароль, и убедитесь, что токен по-прежнему действителен для каждого запроса. Если он недействителен, выдает ошибку 401, а затем перенаправляет на страницу входа.
logout(){
/* clear your localStorage token /*
// redirect to login page
}
interceptor.ts
import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser && currentUser.token) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentUser.token}`
}
});
}
return next.handle(request).do((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
// do stuff with response if you want
}
}, (err: any) => {
if (err instanceof HttpErrorResponse) {
if (err.status === 401) {
// redirect to the login route
// or show a modal showing, we are redirecting to you login page.
}
}
});
}
}
Ссылка: - https://medium.com/@ryanchenkie_40935/angular-authentication-using-the-http-client-and-http-interceptors-2f9d1540eb8
http://jasonwatmore.com/post/2018/05/23/angular-6-jwt-authentication-example-tutorial