angular-auth-oidc-client
Version:
Angular Lib for OpenID Connect & OAuth2
77 lines • 10.4 kB
JavaScript
import { Injectable, inject } from '@angular/core';
import { LoggerService } from '../logging/logger.service';
import { AbstractSecurityStorage } from './abstract-security-storage';
import * as i0 from "@angular/core";
export class BrowserStorageService {
constructor() {
this.loggerService = inject(LoggerService);
this.abstractSecurityStorage = inject(AbstractSecurityStorage);
}
read(key, configuration) {
const { configId } = configuration;
if (!configId) {
this.loggerService.logDebug(configuration, `Wanted to read '${key}' but configId was '${configId}'`);
return null;
}
if (!this.hasStorage()) {
this.loggerService.logDebug(configuration, `Wanted to read '${key}' but Storage was undefined`);
return null;
}
const storedConfig = this.abstractSecurityStorage.read(configId);
if (!storedConfig) {
return null;
}
return JSON.parse(storedConfig);
}
write(value, configuration) {
const { configId } = configuration;
if (!configId) {
this.loggerService.logDebug(configuration, `Wanted to write but configId was '${configId}'`);
return false;
}
if (!this.hasStorage()) {
this.loggerService.logDebug(configuration, `Wanted to write but Storage was falsy`);
return false;
}
value = value || null;
this.abstractSecurityStorage.write(configId, JSON.stringify(value));
return true;
}
remove(key, configuration) {
if (!this.hasStorage()) {
this.loggerService.logDebug(configuration, `Wanted to remove '${key}' but Storage was falsy`);
return false;
}
// const storage = this.getStorage(configuration);
// if (!storage) {
// this.loggerService.logDebug(configuration, `Wanted to write '${key}' but Storage was falsy`);
// return false;
// }
this.abstractSecurityStorage.remove(key);
return true;
}
// TODO THIS STORAGE WANTS AN ID BUT CLEARS EVERYTHING
clear(configuration) {
if (!this.hasStorage()) {
this.loggerService.logDebug(configuration, `Wanted to clear storage but Storage was falsy`);
return false;
}
// const storage = this.getStorage(configuration);
// if (!storage) {
// this.loggerService.logDebug(configuration, `Wanted to clear storage but Storage was falsy`);
// return false;
// }
this.abstractSecurityStorage.clear();
return true;
}
hasStorage() {
return typeof Storage !== 'undefined';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BrowserStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BrowserStorageService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BrowserStorageService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQvc3JjL2xpYi9zdG9yYWdlL2Jyb3dzZXItc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFHdEUsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVtQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0Qyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQTRHNUU7SUExR0MsSUFBSSxDQUFDLEdBQVcsRUFBRSxhQUFrQztRQUNsRCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRW5DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN6QixhQUFhLEVBQ2IsbUJBQW1CLEdBQUcsdUJBQXVCLFFBQVEsR0FBRyxDQUN6RCxDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN6QixhQUFhLEVBQ2IsbUJBQW1CLEdBQUcsNkJBQTZCLENBQ3BELENBQUM7WUFFRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVLEVBQUUsYUFBa0M7UUFDbEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FDekIsYUFBYSxFQUNiLHFDQUFxQyxRQUFRLEdBQUcsQ0FDakQsQ0FBQztZQUVGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FDekIsYUFBYSxFQUNiLHVDQUF1QyxDQUN4QyxDQUFDO1lBRUYsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXLEVBQUUsYUFBa0M7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN6QixhQUFhLEVBQ2IscUJBQXFCLEdBQUcseUJBQXlCLENBQ2xELENBQUM7WUFFRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsa0JBQWtCO1FBQ2xCLGtHQUFrRztRQUVsRyxrQkFBa0I7UUFDbEIsSUFBSTtRQUVKLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELEtBQUssQ0FBQyxhQUFrQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQ3pCLGFBQWEsRUFDYiwrQ0FBK0MsQ0FDaEQsQ0FBQztZQUVGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELGtEQUFrRDtRQUNsRCxrQkFBa0I7UUFDbEIsaUdBQWlHO1FBRWpHLGtCQUFrQjtRQUNsQixJQUFJO1FBRUosSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUM7SUFDeEMsQ0FBQzs4R0E5R1UscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3BlbklkQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvbmZpZy9vcGVuaWQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nZ2luZy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFNlY3VyaXR5U3RvcmFnZSB9IGZyb20gJy4vYWJzdHJhY3Qtc2VjdXJpdHktc3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQnJvd3NlclN0b3JhZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RTZWN1cml0eVN0b3JhZ2UgPSBpbmplY3QoQWJzdHJhY3RTZWN1cml0eVN0b3JhZ2UpO1xuXG4gIHJlYWQoa2V5OiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IE9wZW5JZENvbmZpZ3VyYXRpb24pOiBhbnkge1xuICAgIGNvbnN0IHsgY29uZmlnSWQgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICBpZiAoIWNvbmZpZ0lkKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UubG9nRGVidWcoXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGBXYW50ZWQgdG8gcmVhZCAnJHtrZXl9JyBidXQgY29uZmlnSWQgd2FzICcke2NvbmZpZ0lkfSdgXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGFzU3RvcmFnZSgpKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UubG9nRGVidWcoXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGBXYW50ZWQgdG8gcmVhZCAnJHtrZXl9JyBidXQgU3RvcmFnZSB3YXMgdW5kZWZpbmVkYFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkQ29uZmlnID0gdGhpcy5hYnN0cmFjdFNlY3VyaXR5U3RvcmFnZS5yZWFkKGNvbmZpZ0lkKTtcblxuICAgIGlmICghc3RvcmVkQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdG9yZWRDb25maWcpO1xuICB9XG5cbiAgd3JpdGUodmFsdWU6IGFueSwgY29uZmlndXJhdGlvbjogT3BlbklkQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgY29uZmlnSWQgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICBpZiAoIWNvbmZpZ0lkKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UubG9nRGVidWcoXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGBXYW50ZWQgdG8gd3JpdGUgYnV0IGNvbmZpZ0lkIHdhcyAnJHtjb25maWdJZH0nYFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNTdG9yYWdlKCkpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dEZWJ1ZyhcbiAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgYFdhbnRlZCB0byB3cml0ZSBidXQgU3RvcmFnZSB3YXMgZmFsc3lgXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuXG4gICAgdGhpcy5hYnN0cmFjdFNlY3VyaXR5U3RvcmFnZS53cml0ZShjb25maWdJZCwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlKGtleTogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBPcGVuSWRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmhhc1N0b3JhZ2UoKSkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKFxuICAgICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgICBgV2FudGVkIHRvIHJlbW92ZSAnJHtrZXl9JyBidXQgU3RvcmFnZSB3YXMgZmFsc3lgXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY29uc3Qgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZShjb25maWd1cmF0aW9uKTtcbiAgICAvLyBpZiAoIXN0b3JhZ2UpIHtcbiAgICAvLyAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyhjb25maWd1cmF0aW9uLCBgV2FudGVkIHRvIHdyaXRlICcke2tleX0nIGJ1dCBTdG9yYWdlIHdhcyBmYWxzeWApO1xuXG4gICAgLy8gICByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgdGhpcy5hYnN0cmFjdFNlY3VyaXR5U3RvcmFnZS5yZW1vdmUoa2V5KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gVE9ETyBUSElTIFNUT1JBR0UgV0FOVFMgQU4gSUQgQlVUIENMRUFSUyBFVkVSWVRISU5HXG4gIGNsZWFyKGNvbmZpZ3VyYXRpb246IE9wZW5JZENvbmZpZ3VyYXRpb24pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaGFzU3RvcmFnZSgpKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UubG9nRGVidWcoXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGBXYW50ZWQgdG8gY2xlYXIgc3RvcmFnZSBidXQgU3RvcmFnZSB3YXMgZmFsc3lgXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY29uc3Qgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZShjb25maWd1cmF0aW9uKTtcbiAgICAvLyBpZiAoIXN0b3JhZ2UpIHtcbiAgICAvLyAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyhjb25maWd1cmF0aW9uLCBgV2FudGVkIHRvIGNsZWFyIHN0b3JhZ2UgYnV0IFN0b3JhZ2Ugd2FzIGZhbHN5YCk7XG5cbiAgICAvLyAgIHJldHVybiBmYWxzZTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmFic3RyYWN0U2VjdXJpdHlTdG9yYWdlLmNsZWFyKCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzU3RvcmFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnO1xuICB9XG59XG4iXX0=