ng-ebi-authorization
Version:
The ng-ebi-authorization is a simple authentication Angular library that relies on EBI's Authentication and Authorization Profile (AAP) infrastructure. After successful login, a JWT token is stored on the browser (via cookie, local or session storage).
110 lines • 6.43 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { JwtHelperService } from '@auth0/angular-jwt';
/**
* The purpose of this very simple service is to interface between the
* AuthService and the specific token manipulation routing of JwtHelperService.
* In this way, if in the future we want to replace JwtHelperService by
* another service, AuthService doesn't need to be modified, only this service.
*/
var TokenService = /** @class */ (function () {
function TokenService(_jwt) {
this._jwt = _jwt;
}
/**
* @return {?}
*/
TokenService.prototype.getToken = /**
* @return {?}
*/
function () {
return this._jwt.tokenGetter();
};
/**
* @return {?}
*/
TokenService.prototype.getTokenExpirationDate = /**
* @return {?}
*/
function () {
try {
return this._jwt.getTokenExpirationDate();
}
catch (error) {
return null;
}
};
/**
* @return {?}
*/
TokenService.prototype.isTokenValid = /**
* @return {?}
*/
function () {
try {
return !this._jwt.isTokenExpired();
}
catch (error) {
return false;
}
};
/**
* Get claims from the token.
*
* @param claim The name of the claim
* @param defaultValue The default value returned in case of error
*
* @returns claim or default value
*/
/**
* Get claims from the token.
*
* @template T, C
* @param {?} claim The name of the claim
* @param {?} defaultValue The default value returned in case of error
*
* @return {?} claim or default value
*/
TokenService.prototype.getClaim = /**
* Get claims from the token.
*
* @template T, C
* @param {?} claim The name of the claim
* @param {?} defaultValue The default value returned in case of error
*
* @return {?} claim or default value
*/
function (claim, defaultValue) {
try {
/** @type {?} */
var value = (/** @type {?} */ (this._jwt.decodeToken()[claim]));
if (value === undefined) {
return defaultValue;
}
return value;
}
catch (error) {
return defaultValue;
}
};
TokenService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
TokenService.ctorParameters = function () { return [
{ type: JwtHelperService }
]; };
return TokenService;
}());
export { TokenService };
if (false) {
/**
* @type {?}
* @private
*/
TokenService.prototype._jwt;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWViaS1hdXRob3JpemF0aW9uLyIsInNvdXJjZXMiOlsiYXV0aC90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDbkIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQVE1QjtJQUdJLHNCQUNZLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO0lBQy9CLENBQUM7Ozs7SUFFRywrQkFBUTs7O0lBQWY7UUFDSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVNLDZDQUFzQjs7O0lBQTdCO1FBQ0ksSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7OztJQUVNLG1DQUFZOzs7SUFBbkI7UUFDSSxJQUFJO1lBQ0EsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7Ozs7SUFDSSwrQkFBUTs7Ozs7Ozs7O0lBQWYsVUFBMEIsS0FBYSxFQUFFLFlBQWU7UUFDcEQsSUFBSTs7Z0JBQ00sS0FBSyxHQUFHLG1CQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUE7WUFDbEQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUNyQixPQUFPLFlBQVksQ0FBQzthQUN2QjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLFlBQVksQ0FBQztTQUN2QjtJQUNMLENBQUM7O2dCQTdDSixVQUFVOzs7O2dCQVRQLGdCQUFnQjs7SUF1RHBCLG1CQUFDO0NBQUEsQUE5Q0QsSUE4Q0M7U0E3Q1ksWUFBWTs7Ozs7O0lBR2pCLDRCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBKd3RIZWxwZXJTZXJ2aWNlXG59IGZyb20gJ0BhdXRoMC9hbmd1bGFyLWp3dCc7XG5cbi8qKlxuICogVGhlIHB1cnBvc2Ugb2YgdGhpcyB2ZXJ5IHNpbXBsZSBzZXJ2aWNlIGlzIHRvIGludGVyZmFjZSBiZXR3ZWVuIHRoZVxuICogQXV0aFNlcnZpY2UgYW5kIHRoZSBzcGVjaWZpYyB0b2tlbiBtYW5pcHVsYXRpb24gcm91dGluZyBvZiBKd3RIZWxwZXJTZXJ2aWNlLlxuICogSW4gdGhpcyB3YXksIGlmIGluIHRoZSBmdXR1cmUgd2Ugd2FudCB0byByZXBsYWNlIEp3dEhlbHBlclNlcnZpY2UgYnlcbiAqIGFub3RoZXIgc2VydmljZSwgQXV0aFNlcnZpY2UgZG9lc24ndCBuZWVkIHRvIGJlIG1vZGlmaWVkLCBvbmx5IHRoaXMgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRva2VuU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfand0OiBKd3RIZWxwZXJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGdldFRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fand0LnRva2VuR2V0dGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRva2VuRXhwaXJhdGlvbkRhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2p3dC5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1Rva2VuVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2p3dC5pc1Rva2VuRXhwaXJlZCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNsYWltcyBmcm9tIHRoZSB0b2tlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjbGFpbSBUaGUgbmFtZSBvZiB0aGUgY2xhaW1cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IHZhbHVlIHJldHVybmVkIGluIGNhc2Ugb2YgZXJyb3JcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGNsYWltIG9yIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2xhaW0gPCBULCBDID4gKGNsYWltOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogQyk6IFQgfCBDIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gPCBUID4gdGhpcy5fand0LmRlY29kZVRva2VuKClbY2xhaW1dO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==