UNPKG

bc-adal-angular

Version:

Library wrapper for Angular 6+, development over Microsoft ADAL (Azure Active Directory Authentication Library) - [https://github.com/AzureAD/azure-activedirectory-library-for-js](https://github.com/AzureAD/azure-activedirectory-library-for-js) that helps

148 lines 9.43 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Inject, Injectable } from '@angular/core'; import * as AuthenticationContext from 'adal-angular'; import { Observable } from 'rxjs'; import { retry } from 'rxjs/operators'; import { ADAL_OPTIONS } from './../config/adal.options'; export class BcAdalAngularService { /** * @param {?} adalOptions */ constructor(adalOptions) { this.adalOptions = adalOptions; this.setOptions(adalOptions); this.initAuthenticationContext(); } /** * @return {?} */ login() { this.context.login(); } /** * @return {?} */ logout() { this.context.logOut(); } /** * @return {?} */ getOptions() { return this.options; } /** * @param {?} adalOptions * @return {?} */ setOptions(adalOptions) { this.options = adalOptions; } /** * @return {?} */ get authContext() { return this.context; } /** * @return {?} */ handleWindowCallback() { this.context.handleWindowCallback(); } /** * @return {?} */ get userInfo() { return this.context.getCachedUser(); } /** * @return {?} */ get accessToken() { return this.context.getCachedToken(this.options.clientId); } /** * @return {?} */ get isAuthenticated() { return this.userInfo && this.accessToken; } /** * @param {?} url * @return {?} */ getResourceForEndpoint(url) { return this.context.getResourceForEndpoint(url); } /** * @param {?} hash * @return {?} */ isCallback(hash) { return this.context.isCallback(hash); } /** * @return {?} */ getLoginError() { return this.context.getLoginError(); } /** * @param {?} endpoint * @param {?} callbacks * @return {?} */ getAccessToken(endpoint, callbacks) { return this.context.acquireToken(endpoint, callbacks); } /* istanbul ignore next */ /** * @param {?} resource * @return {?} */ acquireTokenResilient(resource) { return new Observable((subscriber) => this.context.acquireToken(resource, (message, token) => { if (token) { subscriber.next(token); } else { subscriber.error(message); } })).pipe(retry(3)); } /** * @private * @return {?} */ initAuthenticationContext() { this.context = new AuthenticationContext(this.options); } } BcAdalAngularService.decorators = [ { type: Injectable } ]; BcAdalAngularService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [ADAL_OPTIONS,] }] } ]; if (false) { /** * @type {?} * @private */ BcAdalAngularService.prototype.context; /** * @type {?} * @private */ BcAdalAngularService.prototype.options; /** * @type {?} * @private */ BcAdalAngularService.prototype.adalOptions; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmMtYWRhbC1hbmd1bGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9iYy1hZGFsLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYmMtYWRhbC1hbmd1bGFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBR3JFLE1BQU07Ozs7SUFJSixZQUEwQyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFTSxVQUFVLENBQUMsV0FBd0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7SUFDN0IsQ0FBQzs7OztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOzs7O0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7O0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzNDLENBQUM7Ozs7O0lBRU0sc0JBQXNCLENBQUMsR0FBVztRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7Ozs7SUFFTSxVQUFVLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7SUFFTSxjQUFjLENBQ25CLFFBQWdCLEVBQ2hCLFNBQWtEO1FBRWxELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Ozs7OztJQUdNLHFCQUFxQixDQUFDLFFBQWdCO1FBQzNDLE9BQU8sSUFBSSxVQUFVLENBQU0sQ0FBQyxVQUEyQixFQUFFLEVBQUUsQ0FDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3JFLElBQUksS0FBSyxFQUFFO2dCQUNULFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7Ozs7O0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7O1lBaEZGLFVBQVU7Ozs0Q0FLSSxNQUFNLFNBQUMsWUFBWTs7Ozs7OztJQUhoQyx1Q0FBdUM7Ozs7O0lBQ3ZDLHVDQUE2Qjs7Ozs7SUFFakIsMkNBQXNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIEF1dGhlbnRpY2F0aW9uQ29udGV4dCBmcm9tICdhZGFsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQURBTF9PUFRJT05TLCBBZGFsT3B0aW9ucyB9IGZyb20gJy4vLi4vY29uZmlnL2FkYWwub3B0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCY0FkYWxBbmd1bGFyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb250ZXh0OiBBdXRoZW50aWNhdGlvbkNvbnRleHQ7XHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBBZGFsT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBREFMX09QVElPTlMpIHByaXZhdGUgYWRhbE9wdGlvbnM6IEFkYWxPcHRpb25zKSB7XHJcbiAgICB0aGlzLnNldE9wdGlvbnMoYWRhbE9wdGlvbnMpO1xyXG4gICAgdGhpcy5pbml0QXV0aGVudGljYXRpb25Db250ZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9naW4oKSB7XHJcbiAgICB0aGlzLmNvbnRleHQubG9naW4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmNvbnRleHQubG9nT3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBBZGFsT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldE9wdGlvbnMoYWRhbE9wdGlvbnM6IEFkYWxPcHRpb25zKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBhZGFsT3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBhdXRoQ29udGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVXaW5kb3dDYWxsYmFjaygpIHtcclxuICAgIHRoaXMuY29udGV4dC5oYW5kbGVXaW5kb3dDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1c2VySW5mbygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q2FjaGVkVXNlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhY2Nlc3NUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q2FjaGVkVG9rZW4odGhpcy5vcHRpb25zLmNsaWVudElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNBdXRoZW50aWNhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckluZm8gJiYgdGhpcy5hY2Nlc3NUb2tlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZXNvdXJjZUZvckVuZHBvaW50KHVybDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LmdldFJlc291cmNlRm9yRW5kcG9pbnQodXJsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0NhbGxiYWNrKGhhc2g6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5pc0NhbGxiYWNrKGhhc2gpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvZ2luRXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LmdldExvZ2luRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY2Nlc3NUb2tlbihcclxuICAgIGVuZHBvaW50OiBzdHJpbmcsXHJcbiAgICBjYWxsYmFja3M6IChtZXNzYWdlOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IGFueVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5hY3F1aXJlVG9rZW4oZW5kcG9pbnQsIGNhbGxiYWNrcyk7XHJcbiAgfVxyXG5cclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gIHB1YmxpYyBhY3F1aXJlVG9rZW5SZXNpbGllbnQocmVzb3VyY2U6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55Pigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KSA9PlxyXG4gICAgICB0aGlzLmNvbnRleHQuYWNxdWlyZVRva2VuKHJlc291cmNlLCAobWVzc2FnZTogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodG9rZW4pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRBdXRoZW50aWNhdGlvbkNvbnRleHQoKSB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSBuZXcgQXV0aGVudGljYXRpb25Db250ZXh0KHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==