angular2-jwt
Version:
Helper library for handling JWTs in Angular 2+
1 lines • 23.3 kB
Source Map (JSON)
{"version":3,"file":"angular2-jwt.js","sourceRoot":"","sources":["angular2-jwt.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Http,\n Headers,\n Request,\n RequestOptions,\n RequestOptionsArgs,\n RequestMethod,\n Response,\n HttpModule\n} from \"@angular/http\";\nimport {Injectable, Provider, NgModule, Optional, SkipSelf, ModuleWithProviders} from \"@angular/core\";\nimport {Observable} from \"rxjs/Observable\";\nimport \"rxjs/add/observable/fromPromise\";\nimport \"rxjs/add/observable/defer\";\nimport \"rxjs/add/operator/mergeMap\";\n\nexport interface IAuthConfig {\n globalHeaders: Array<Object>;\n headerName: string;\n headerPrefix: string;\n noJwtError: boolean;\n noClientCheck: boolean;\n noTokenScheme?: boolean;\n tokenGetter: () => string | Promise<string>;\n tokenName: string;\n}\n\nexport interface IAuthConfigOptional {\n headerName?: string;\n headerPrefix?: string;\n tokenName?: string;\n tokenGetter?: () => string | Promise<string>;\n noJwtError?: boolean;\n noClientCheck?: boolean;\n globalHeaders?: Array<Object>;\n noTokenScheme?: boolean;\n}\n\nexport class AuthConfigConsts {\n public static DEFAULT_TOKEN_NAME = 'token';\n public static DEFAULT_HEADER_NAME = 'Authorization';\n public static HEADER_PREFIX_BEARER = 'Bearer ';\n}\n\nconst AuthConfigDefaults: IAuthConfig = {\n headerName: AuthConfigConsts.DEFAULT_HEADER_NAME,\n headerPrefix: null,\n tokenName: AuthConfigConsts.DEFAULT_TOKEN_NAME,\n tokenGetter: () => localStorage.getItem(AuthConfigDefaults.tokenName) as string,\n noJwtError: false,\n noClientCheck: false,\n globalHeaders: [],\n noTokenScheme: false\n};\n\n/**\n * Sets up the authentication configuration.\n */\n\nexport class AuthConfig {\n\n private _config: IAuthConfig;\n\n constructor(config?: IAuthConfigOptional) {\n config = config || {};\n this._config = objectAssign({}, AuthConfigDefaults, config);\n if (this._config.headerPrefix) {\n this._config.headerPrefix += ' ';\n } else if (this._config.noTokenScheme) {\n this._config.headerPrefix = '';\n } else {\n this._config.headerPrefix = AuthConfigConsts.HEADER_PREFIX_BEARER;\n }\n\n if (config.tokenName && !config.tokenGetter) {\n this._config.tokenGetter = () => localStorage.getItem(config.tokenName) as string;\n }\n }\n\n public getConfig():IAuthConfig {\n return this._config;\n }\n\n}\n\nexport class AuthHttpError extends Error {\n}\n\n/**\n * Allows for explicit authenticated HTTP requests.\n */\n\n@Injectable()\nexport class AuthHttp {\n\n private config: IAuthConfig;\n public tokenStream: Observable<string>;\n\n constructor(options: AuthConfig, private http: Http, private defOpts?: RequestOptions) {\n this.config = options.getConfig();\n\n this.tokenStream = new Observable<string>((obs: any) => {\n obs.next(this.config.tokenGetter());\n });\n }\n\n private mergeOptions(providedOpts: RequestOptionsArgs, defaultOpts?: RequestOptions) {\n let newOptions = defaultOpts || new RequestOptions();\n if (this.config.globalHeaders) {\n this.setGlobalHeaders(this.config.globalHeaders, providedOpts);\n }\n\n newOptions = newOptions.merge(new RequestOptions(providedOpts));\n\n return newOptions;\n }\n\n private requestHelper(requestArgs: RequestOptionsArgs, additionalOptions?: RequestOptionsArgs): Observable<Response> {\n let options = new RequestOptions(requestArgs);\n if (additionalOptions) {\n options = options.merge(additionalOptions);\n }\n return this.request(new Request(this.mergeOptions(options, this.defOpts)));\n }\n\n public requestWithToken(req: Request, token: string): Observable<Response> {\n if (!this.config.noClientCheck && !tokenNotExpired(undefined, token)) {\n if (!this.config.noJwtError) {\n return new Observable<Response>((obs: any) => {\n obs.error(new AuthHttpError('No JWT present or has expired'));\n });\n }\n } else {\n req.headers.set(this.config.headerName, this.config.headerPrefix + token);\n }\n\n return this.http.request(req);\n }\n\n public setGlobalHeaders(headers: Array<Object>, request: Request | RequestOptionsArgs) {\n if (!request.headers) {\n request.headers = new Headers();\n }\n headers.forEach((header: Object) => {\n let key: string = Object.keys(header)[0];\n let headerValue: string = (header as any)[key];\n (request.headers as Headers).set(key, headerValue);\n });\n }\n\n public request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {\n if (typeof url === 'string') {\n return this.get(url, options); // Recursion: transform url from String to Request\n }\n // else if ( ! url instanceof Request ) {\n // throw new Error('First argument must be a url string or Request instance.');\n // }\n\n // from this point url is always an instance of Request;\n let req: Request = url as Request;\n\n // Create a cold observable and load the token just in time\n return Observable.defer(() => {\n let token: string | Promise<string> = this.config.tokenGetter();\n if (token instanceof Promise) {\n return Observable.fromPromise(token).mergeMap((jwtToken: string) => this.requestWithToken(req, jwtToken));\n } else {\n return this.requestWithToken(req, token);\n }\n });\n }\n\n public get(url: string, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: '', method: RequestMethod.Get, url: url }, options);\n }\n\n public post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: body, method: RequestMethod.Post, url: url }, options);\n }\n\n public put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: body, method: RequestMethod.Put, url: url }, options);\n }\n\n public delete(url: string, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: '', method: RequestMethod.Delete, url: url }, options);\n }\n\n public patch(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: body, method: RequestMethod.Patch, url: url }, options);\n }\n\n public head(url: string, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: '', method: RequestMethod.Head, url: url }, options);\n }\n\n public options(url: string, options?: RequestOptionsArgs): Observable<Response> {\n return this.requestHelper({ body: '', method: RequestMethod.Options, url: url }, options);\n }\n\n}\n\n/**\n * Helper class to decode and find JWT expiration.\n */\n\nexport class JwtHelper {\n\n public urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: { break; }\n case 2: { output += '=='; break; }\n case 3: { output += '='; break; }\n default: {\n throw 'Illegal base64url string!';\n }\n }\n return this.b64DecodeUnicode(output);\n }\n\n // credits for decoder goes to https://github.com/atk\n private b64decode(str: string): string {\n let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output: string = '';\n\n str = String(str).replace(/=+$/, '');\n\n if (str.length % 4 == 1) {\n throw new Error(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n }\n\n for (\n // initialize result and counters\n let bc: number = 0, bs: any, buffer: any, idx: number = 0;\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\n private b64DecodeUnicode(str: any) {\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), (c: any) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n\n public decodeToken(token: string): any {\n let parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n let decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token');\n }\n\n return JSON.parse(decoded);\n }\n\n public getTokenExpirationDate(token: string): Date {\n let decoded: any;\n decoded = this.decodeToken(token);\n\n if (!decoded.hasOwnProperty('exp')) {\n return null;\n }\n\n let date = new Date(0); // The 0 here is the key, which sets the date to the epoch\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\n let date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n\n if (date == null) {\n return false;\n }\n\n // Token expired?\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\n }\n}\n\n/**\n * Checks for presence of token and that token hasn't expired.\n * For use with the @CanActivate router decorator and NgIf\n */\nexport function tokenNotExpired(tokenName = AuthConfigConsts.DEFAULT_TOKEN_NAME, jwt?:string): boolean {\n\n const token: string = jwt || localStorage.getItem(tokenName);\n\n const jwtHelper = new JwtHelper();\n\n return token != null && !jwtHelper.isTokenExpired(token);\n}\n\nexport const AUTH_PROVIDERS: Provider[] = [\n {\n provide: AuthHttp,\n deps: [Http, RequestOptions],\n useFactory: (http: Http, options: RequestOptions) => {\n return new AuthHttp(new AuthConfig(), http, options);\n }\n }\n];\n\nexport function provideAuth(config?: IAuthConfigOptional): Provider[] {\n return [\n {\n provide: AuthHttp,\n deps: [Http, RequestOptions],\n useFactory: (http: Http, options: RequestOptions) => {\n return new AuthHttp(new AuthConfig(config), http, options);\n }\n }\n ];\n}\n\nlet hasOwnProperty = Object.prototype.hasOwnProperty;\nlet propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val: any) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n \n return Object(val);\n}\n\nfunction objectAssign(target: any, ...source: any[]) {\n let from: any;\n let to = toObject(target);\n let symbols: any;\n \n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n \n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n \n if ((<any>Object).getOwnPropertySymbols) {\n symbols = (<any>Object).getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n}\n/**\n * Module for angular2-jwt\n * @experimental\n */\n@NgModule({\n imports: [HttpModule],\n providers: [AuthHttp, JwtHelper]\n})\nexport class AuthModule {\n constructor(@Optional() @SkipSelf() parentModule: AuthModule) {\n if (parentModule) {\n throw new Error(\n 'AuthModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: AuthConfig): ModuleWithProviders {\n return {\n ngModule: AuthModule,\n providers: [\n {provide: AuthConfig, useValue: config}\n ]\n };\n }\n}\n"]}