UNPKG

@glamtime/oauth-oidc-client

Version:

Secure your Angular app using the latest standards for OpenID Connect & OAuth2. Provides support for token refresh, all modern OIDC Identity Providers and more.

88 lines 8.45 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class OAuthStorageService { constructor() { this._storage = localStorage; } get state() { return this._getItem('state'); } set state(code) { if (code) { this._setItem('state', code); } else { this._removeItem('state'); } } get codeVerifier() { return this._getItem('codeVerifier'); } set codeVerifier(code) { if (code) { this._setItem('codeVerifier', code); } else { this._removeItem('codeVerifier'); } } get accessToken() { return this._getItem('accessToken'); } set accessToken(token) { if (token) { this._setItem('accessToken', token); } else { this._removeItem('accessToken'); } } get idToken() { return this._getItem('idToken'); } set idToken(token) { if (token) { this._setItem('idToken', token); } else { this._removeItem('idToken'); } } get refreshToken() { return this._getItem('refreshToken'); } set refreshToken(token) { if (token) { this._setItem('refreshToken', token); } else { this._removeItem('refreshToken'); } } resetAuthState() { this._removeItem('state'); this._removeItem('codeVerifier'); this._removeItem('accessToken'); this._removeItem('idToken'); this._removeItem('refreshToken'); this._removeItem('jwtKeys'); } _getItem(key) { return this._storage.getItem(key); } _setItem(key, value) { this._storage.setItem(key, value); } _removeItem(key) { this._storage.removeItem(key); } _clear() { this._storage.clear(); } } OAuthStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: OAuthStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); OAuthStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: OAuthStorageService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: OAuthStorageService, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2F1dGgtb2lkYy1jbGllbnQvc3JjL2xpYi9zdG9yYWdlcy9vYXV0aC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QjtRQUZRLGFBQVEsR0FBWSxZQUFZLENBQUM7SUFFekIsQ0FBQztJQUVqQixJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLElBQW1CO1FBQ2xDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsSUFBbUI7UUFDekMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFdBQVcsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQW9CO1FBQ3JDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsS0FBb0I7UUFDMUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxHQUFxQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBcUIsRUFBRSxLQUFhO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQXFCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDOztnSEF6RlUsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgT0F1dGhTdG9yYWdlS2V5cyA9XG4gIHwgJ3N0YXRlJ1xuICB8ICdjb2RlVmVyaWZpZXInXG4gIHwgJ2FjY2Vzc1Rva2VuJ1xuICB8ICdyZWZyZXNoVG9rZW4nXG4gIHwgJ2lkVG9rZW4nXG4gIHwgJ2p3dEtleXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0F1dGhTdG9yYWdlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEl0ZW0oJ3N0YXRlJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHN0YXRlKGNvZGU6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5fc2V0SXRlbSgnc3RhdGUnLCBjb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVtb3ZlSXRlbSgnc3RhdGUnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvZGVWZXJpZmllcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0SXRlbSgnY29kZVZlcmlmaWVyJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGNvZGVWZXJpZmllcihjb2RlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMuX3NldEl0ZW0oJ2NvZGVWZXJpZmllcicsIGNvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW1vdmVJdGVtKCdjb2RlVmVyaWZpZXInKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9nZXRJdGVtKCdhY2Nlc3NUb2tlbicpO1xuICB9XG5cbiAgcHVibGljIHNldCBhY2Nlc3NUb2tlbih0b2tlbjogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0b2tlbikge1xuICAgICAgdGhpcy5fc2V0SXRlbSgnYWNjZXNzVG9rZW4nLCB0b2tlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ2FjY2Vzc1Rva2VuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpZFRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9nZXRJdGVtKCdpZFRva2VuJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlkVG9rZW4odG9rZW46IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHRoaXMuX3NldEl0ZW0oJ2lkVG9rZW4nLCB0b2tlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ2lkVG9rZW4nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0SXRlbSgncmVmcmVzaFRva2VuJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0b2tlbikge1xuICAgICAgdGhpcy5fc2V0SXRlbSgncmVmcmVzaFRva2VuJywgdG9rZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW1vdmVJdGVtKCdyZWZyZXNoVG9rZW4nKTtcbiAgICB9XG4gIH1cblxuICByZXNldEF1dGhTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmVJdGVtKCdzdGF0ZScpO1xuICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ2NvZGVWZXJpZmllcicpO1xuICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ2FjY2Vzc1Rva2VuJyk7XG4gICAgdGhpcy5fcmVtb3ZlSXRlbSgnaWRUb2tlbicpO1xuICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ3JlZnJlc2hUb2tlbicpO1xuICAgIHRoaXMuX3JlbW92ZUl0ZW0oJ2p3dEtleXMnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEl0ZW0oa2V5OiBPQXV0aFN0b3JhZ2VLZXlzKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2UuZ2V0SXRlbShrZXkpITtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEl0ZW0oa2V5OiBPQXV0aFN0b3JhZ2VLZXlzLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSXRlbShrZXk6IE9BdXRoU3RvcmFnZUtleXMpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG59XG4iXX0=