@kuketo/oidc-client-storage
Version:
This is an angular library which provides complete access to cookies in angular universal apps. Kuketo is esperanto for cookies.
52 lines • 7.38 kB
JavaScript
import { APP_BASE_HREF } from '@angular/common';
import { Inject, Injectable, Optional } from '@angular/core';
import { AbstractSecurityStorage } from 'angular-auth-oidc-client';
import { OIDC_COOKIE_SERIALIZER } from './tokens';
import * as i0 from "@angular/core";
import * as i1 from "@kuketo/core";
export class OidcClientStorageService extends AbstractSecurityStorage {
constructor(cookieService, baseHref, serializer) {
super();
this.cookieService = cookieService;
this.baseHref = baseHref;
this.serializer = serializer;
this.serializer || (this.serializer = JSON);
}
read(key, configId) {
const name = this.getPrefix(key, configId);
const value = this.cookieService.get(name);
return !!value ? this.serializer.parse(value) : undefined;
}
write(key, value, configId) {
this.cookieService.put(this.getPrefix(key, configId), this.serializer.stringify(value), this.getCookieOptions());
}
remove(key, configId) {
this.cookieService.delete(this.getPrefix(key, configId), this.getCookieOptions());
}
clear(configId) {
const regex = new RegExp(`^${this.getPrefix('', configId)}`);
this.cookieService.deleteByRegex(regex, this.getCookieOptions());
}
getPrefix(key, configId) {
return `%oidc[${configId !== null && configId !== void 0 ? configId : ''}]%${key}`;
}
getCookieOptions() {
return {
path: this.baseHref,
};
}
}
OidcClientStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.1", ngImport: i0, type: OidcClientStorageService, deps: [{ token: i1.CookiesService }, { token: APP_BASE_HREF }, { token: OIDC_COOKIE_SERIALIZER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
OidcClientStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.1", ngImport: i0, type: OidcClientStorageService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.1", ngImport: i0, type: OidcClientStorageService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.CookiesService }, { type: undefined, decorators: [{
type: Inject,
args: [APP_BASE_HREF]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [OIDC_COOKIE_SERIALIZER]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jbGllbnQtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb2lkYy1jbGllbnQtc3RvcmFnZS9zcmMvbGliL29pZGMtY2xpZW50LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBR2xELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7SUFDbkUsWUFDbUIsYUFBNkIsRUFDTixRQUFnQixFQUd2QyxVQUFnQztRQUVqRCxLQUFLLEVBQUUsQ0FBQztRQU5TLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUNOLGFBQVEsR0FBUixRQUFRLENBQVE7UUFHdkMsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFHakQsSUFBSSxDQUFDLFVBQVUsS0FBZixJQUFJLENBQUMsVUFBVSxHQUFLLElBQUksRUFBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFJLEdBQVcsRUFBRSxRQUFpQjtRQUNwQyxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBSSxHQUFXLEVBQUUsS0FBUSxFQUFFLFFBQWlCO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUksS0FBSyxDQUFDLEVBQ25DLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBZ0I7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFDOUMsT0FBTyxTQUFTLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDcEIsQ0FBQztJQUNKLENBQUM7O3FIQTlDVSx3QkFBd0IsZ0RBR3pCLGFBQWEsYUFFYixzQkFBc0I7eUhBTHJCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOzswQkFJTixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixRQUFROzswQkFDUixNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9CQVNFX0hSRUYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29va2llc1NlcnZpY2UsIENvb2tpZU9wdGlvbnMgfSBmcm9tICdAa3VrZXRvL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RTZWN1cml0eVN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQnO1xuaW1wb3J0IHsgT2lkY0Nvb2tpZVNlcmlhbGl6ZXIgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT0lEQ19DT09LSUVfU0VSSUFMSVpFUiB9IGZyb20gJy4vdG9rZW5zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9pZGNDbGllbnRTdG9yYWdlU2VydmljZSBleHRlbmRzIEFic3RyYWN0U2VjdXJpdHlTdG9yYWdlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVzU2VydmljZSxcbiAgICBASW5qZWN0KEFQUF9CQVNFX0hSRUYpIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoT0lEQ19DT09LSUVfU0VSSUFMSVpFUilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZXI6IE9pZGNDb29raWVTZXJpYWxpemVyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VyaWFsaXplciB8fD0gSlNPTjtcbiAgfVxuXG4gIHJlYWQ8VD4oa2V5OiBzdHJpbmcsIGNvbmZpZ0lkPzogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5nZXRQcmVmaXgoa2V5LCBjb25maWdJZCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KG5hbWUpO1xuICAgIHJldHVybiAhIXZhbHVlID8gdGhpcy5zZXJpYWxpemVyLnBhcnNlPFQ+KHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHdyaXRlPFQ+KGtleTogc3RyaW5nLCB2YWx1ZTogVCwgY29uZmlnSWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2UucHV0KFxuICAgICAgdGhpcy5nZXRQcmVmaXgoa2V5LCBjb25maWdJZCksXG4gICAgICB0aGlzLnNlcmlhbGl6ZXIuc3RyaW5naWZ5PFQ+KHZhbHVlKSxcbiAgICAgIHRoaXMuZ2V0Q29va2llT3B0aW9ucygpLFxuICAgICk7XG4gIH1cblxuICByZW1vdmUoa2V5OiBzdHJpbmcsIGNvbmZpZ0lkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0UHJlZml4KGtleSwgY29uZmlnSWQpLFxuICAgICAgdGhpcy5nZXRDb29raWVPcHRpb25zKCksXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyKGNvbmZpZ0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke3RoaXMuZ2V0UHJlZml4KCcnLCBjb25maWdJZCl9YCk7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZUJ5UmVnZXgocmVnZXgsIHRoaXMuZ2V0Q29va2llT3B0aW9ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJlZml4KGtleTogc3RyaW5nLCBjb25maWdJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAlb2lkY1ske2NvbmZpZ0lkID8/ICcnfV0lJHtrZXl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llT3B0aW9ucygpOiBDb29raWVPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5iYXNlSHJlZixcbiAgICB9O1xuICB9XG59XG4iXX0=