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
JavaScript
/**
* @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==