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).
85 lines • 5.52 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.
*/
export class TokenService {
/**
* @param {?} _jwt
*/
constructor(_jwt) {
this._jwt = _jwt;
}
/**
* @return {?}
*/
getToken() {
return this._jwt.tokenGetter();
}
/**
* @return {?}
*/
getTokenExpirationDate() {
try {
return this._jwt.getTokenExpirationDate();
}
catch (error) {
return null;
}
}
/**
* @return {?}
*/
isTokenValid() {
try {
return !this._jwt.isTokenExpired();
}
catch (error) {
return false;
}
}
/**
* 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
*/
getClaim(claim, defaultValue) {
try {
/** @type {?} */
const value = (/** @type {?} */ (this._jwt.decodeToken()[claim]));
if (value === undefined) {
return defaultValue;
}
return value;
}
catch (error) {
return defaultValue;
}
}
}
TokenService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
TokenService.ctorParameters = () => [
{ type: JwtHelperService }
];
if (false) {
/**
* @type {?}
* @private
*/
TokenService.prototype._jwt;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWViaS1hdXRob3JpemF0aW9uLyIsInNvdXJjZXMiOlsiYXV0aC90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDbkIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQVM1QixNQUFNLE9BQU8sWUFBWTs7OztJQUVyQixZQUNZLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO0lBQy9CLENBQUM7Ozs7SUFFRyxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7SUFFTSxzQkFBc0I7UUFDekIsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7OztJQUVNLFlBQVk7UUFDZixJQUFJO1lBQ0EsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQzs7Ozs7Ozs7OztJQVVNLFFBQVEsQ0FBVyxLQUFhLEVBQUUsWUFBZTtRQUNwRCxJQUFJOztrQkFDTSxLQUFLLEdBQUcsbUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBQTtZQUNsRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLE9BQU8sWUFBWSxDQUFDO2FBQ3ZCO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sWUFBWSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7O1lBN0NKLFVBQVU7Ozs7WUFUUCxnQkFBZ0I7Ozs7Ozs7SUFhWiw0QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgSnd0SGVscGVyU2VydmljZVxufSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xuXG4vKipcbiAqIFRoZSBwdXJwb3NlIG9mIHRoaXMgdmVyeSBzaW1wbGUgc2VydmljZSBpcyB0byBpbnRlcmZhY2UgYmV0d2VlbiB0aGVcbiAqIEF1dGhTZXJ2aWNlIGFuZCB0aGUgc3BlY2lmaWMgdG9rZW4gbWFuaXB1bGF0aW9uIHJvdXRpbmcgb2YgSnd0SGVscGVyU2VydmljZS5cbiAqIEluIHRoaXMgd2F5LCBpZiBpbiB0aGUgZnV0dXJlIHdlIHdhbnQgdG8gcmVwbGFjZSBKd3RIZWxwZXJTZXJ2aWNlIGJ5XG4gKiBhbm90aGVyIHNlcnZpY2UsIEF1dGhTZXJ2aWNlIGRvZXNuJ3QgbmVlZCB0byBiZSBtb2RpZmllZCwgb25seSB0aGlzIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUb2tlblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2p3dDogSnd0SGVscGVyU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBnZXRUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2p3dC50b2tlbkdldHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb2tlbkV4cGlyYXRpb25EYXRlKCk6IERhdGUgfCBudWxsIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9qd3QuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUb2tlblZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9qd3QuaXNUb2tlbkV4cGlyZWQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjbGFpbXMgZnJvbSB0aGUgdG9rZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2xhaW0gVGhlIG5hbWUgb2YgdGhlIGNsYWltXG4gICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBUaGUgZGVmYXVsdCB2YWx1ZSByZXR1cm5lZCBpbiBjYXNlIG9mIGVycm9yXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBjbGFpbSBvciBkZWZhdWx0IHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIGdldENsYWltIDwgVCwgQyA+IChjbGFpbTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IEMpOiBUIHwgQyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IDwgVCA+IHRoaXMuX2p3dC5kZWNvZGVUb2tlbigpW2NsYWltXTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=