UNPKG

@experteam-mx/ngx-services

Version:

Angular common services for Experteam apps

28 lines 4.05 kB
import { inject } from '@angular/core'; import { CookieService } from 'ngx-cookie-service'; import { ENVIRONMENT_TOKEN } from '../ngx-services.models'; /** * An HTTP interceptor to append an Authorization header with a Bearer token * to outgoing HTTP requests if certain conditions are met. * * @param {HttpRequest<unknown>} req - The outgoing HTTP request object which may be modified. * @param {HttpHandlerFn} next - The next handler in the HTTP request pipeline. * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event stream resulting from the request. */ export function apiTokenInterceptor(req, next) { const { authCookie } = inject(ENVIRONMENT_TOKEN); const cookie = inject(CookieService); if (req.headers.has('Authorization') || req.headers.has('AppKey')) { return next(req); } const token = cookie.get(authCookie); if (!token) return next(req); req = req.clone({ setHeaders: { Authorization: `Bearer ${token}` } }); return next(req); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXRva2VuLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGktdG9rZW4uaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFMUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBRSxHQUF5QixFQUFFLElBQW1CO0lBQ2pGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFcEMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRXBDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFNUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDZCxVQUFVLEVBQUU7WUFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7U0FDakM7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlckZuLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSdcclxuaW1wb3J0IHsgRU5WSVJPTk1FTlRfVE9LRU4gfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5cclxuLyoqXHJcbiAqIEFuIEhUVFAgaW50ZXJjZXB0b3IgdG8gYXBwZW5kIGFuIEF1dGhvcml6YXRpb24gaGVhZGVyIHdpdGggYSBCZWFyZXIgdG9rZW5cclxuICogdG8gb3V0Z29pbmcgSFRUUCByZXF1ZXN0cyBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgYXJlIG1ldC5cclxuICpcclxuICogQHBhcmFtIHtIdHRwUmVxdWVzdDx1bmtub3duPn0gcmVxIC0gVGhlIG91dGdvaW5nIEhUVFAgcmVxdWVzdCBvYmplY3Qgd2hpY2ggbWF5IGJlIG1vZGlmaWVkLlxyXG4gKiBAcGFyYW0ge0h0dHBIYW5kbGVyRm59IG5leHQgLSBUaGUgbmV4dCBoYW5kbGVyIGluIHRoZSBIVFRQIHJlcXVlc3QgcGlwZWxpbmUuXHJcbiAqIEByZXR1cm4ge09ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+Pn0gQW4gb2JzZXJ2YWJsZSBvZiB0aGUgSFRUUCBldmVudCBzdHJlYW0gcmVzdWx0aW5nIGZyb20gdGhlIHJlcXVlc3QuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYXBpVG9rZW5JbnRlcmNlcHRvciAocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgY29uc3QgeyBhdXRoQ29va2llIH0gPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pXHJcbiAgY29uc3QgY29va2llID0gaW5qZWN0KENvb2tpZVNlcnZpY2UpXHJcblxyXG4gIGlmIChyZXEuaGVhZGVycy5oYXMoJ0F1dGhvcml6YXRpb24nKSB8fCByZXEuaGVhZGVycy5oYXMoJ0FwcEtleScpKSB7XHJcbiAgICByZXR1cm4gbmV4dChyZXEpXHJcbiAgfVxyXG5cclxuICBjb25zdCB0b2tlbiA9IGNvb2tpZS5nZXQoYXV0aENvb2tpZSlcclxuXHJcbiAgaWYgKCF0b2tlbikgcmV0dXJuIG5leHQocmVxKVxyXG5cclxuICByZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgc2V0SGVhZGVyczoge1xyXG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4gIHJldHVybiBuZXh0KHJlcSlcclxufVxyXG4iXX0=