Skip to main content
Version: 4.2

Automatically Add Auth Token to HTTP Requests

If your backend service requires the auth token for authorization, you can include it in every HTTP request.

Angular#

Implement Angular's HttpInterceptor class, attaching the auth token to the authorization header.

import { Injectable } from '@angular/core';
import { from, Observable } from 'rxjs';
import { flatMap } from 'rxjs/operators';
import {
HttpEvent,
HttpInterceptor,
HttpHandler,
HttpRequest,
} from '@angular/common/http';
import { IdentityService } from '../identity';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private identity: IdentityService) {}
intercept(
req: HttpRequest<any>,
next: HttpHandler,
): Observable<HttpEvent<any>> {
return from(
this.requestRequiresToken(req)
? this.identity
.getToken()
.then(token => {
if (token) {
req = req.clone({
setHeaders: {
Authorization: 'Bearer ' + token,
},
});
}
})
.catch(() => Promise.resolve())
: Promise.resolve(),
).pipe(flatMap(() => next.handle(req)));
}
private requestRequiresToken(req: HttpRequest<any>): boolean {
return !/\/login$/.test(req.url);
}
}