UNPKG

3.25 kBSource Map (JSON)View Raw
1{"version":3,"file":"jwt-interceptor.js","sourceRoot":"","sources":["../../../../../../.ng_build/auth/services/interceptors/jwt-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,MAAM,OAAO,oBAAoB;IAE/B,YAAoB,QAAkB,EAC0B,MAAM;QADlD,aAAQ,GAAR,QAAQ,CAAU;QAC0B,WAAM,GAAN,MAAM,CAAA;IACtE,CAAC;IAED,SAAS,CAAC,GAAqB,EAAE,IAAiB;QAChD,0EAA0E;QACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE;iBAC/C,IAAI,CACH,SAAS,CAAC,aAAa,CAAC,EAAE;gBACxB,IAAI,aAAa,EAAE;oBACf,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,KAAkB,EAAE,EAAE;wBAC/B,MAAM,GAAG,GAAG,UAAU,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;wBACzC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;4BACd,UAAU,EAAE;gCACV,aAAa,EAAE,GAAG;6BACnB;yBACF,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC,CAAC,CACH,CAAA;iBACJ;qBAAM;oBACJ,2EAA2E;oBAC3E,gGAAgG;oBACjG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CACH,CAAA;SACJ;aAAM;YACP,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzB;IACH,CAAC;IAED,IAAc,WAAW;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;;;YAvCF,UAAU;;;YARkB,QAAQ;4CAYtB,MAAM,SAAC,gCAAgC","sourcesContent":["import { Inject, Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { NbAuthToken } from '../token/token';\nimport { NbAuthService } from '../auth.service';\nimport { NB_AUTH_TOKEN_INTERCEPTOR_FILTER } from '../../auth.options';\n\n@Injectable()\nexport class NbAuthJWTInterceptor implements HttpInterceptor {\n\n constructor(private injector: Injector,\n @Inject(NB_AUTH_TOKEN_INTERCEPTOR_FILTER) protected filter) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n // do not intercept request whose urls are filtered by the injected filter\n if (!this.filter(req)) {\n return this.authService.isAuthenticatedOrRefresh()\n .pipe(\n switchMap(authenticated => {\n if (authenticated) {\n return this.authService.getToken().pipe(\n switchMap((token: NbAuthToken) => {\n const JWT = `Bearer ${token.getValue()}`;\n req = req.clone({\n setHeaders: {\n Authorization: JWT,\n },\n });\n return next.handle(req);\n }),\n )\n } else {\n // Request is sent to server without authentication so that the client code\n // receives the 401/403 error and can act as desired ('session expired', redirect to login, aso)\n return next.handle(req);\n }\n }),\n )\n } else {\n return next.handle(req);\n }\n }\n\n protected get authService(): NbAuthService {\n return this.injector.get(NbAuthService);\n }\n\n}\n"]}
\No newline at end of file