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