@spartacus/cdc
Version:
Customer Data Cloud Integration library for Spartacus
45 lines • 5.66 kB
JavaScript
import { Injectable } from '@angular/core';
import { LogoutGuard } from '@spartacus/storefront';
import * as i0 from "@angular/core";
import * as i1 from "@spartacus/core";
import * as i2 from "@angular/router";
/**
* @override
*
* CDC version of logout guard. In addition to token revocation we invoke logout method from CDC JS lib.
*/
export class CdcLogoutGuard extends LogoutGuard {
constructor(auth, cms, semanticPathService, protectedRoutes, router, winRef, authRedirectService) {
super(auth, cms, semanticPathService, protectedRoutes, router, authRedirectService);
this.auth = auth;
this.cms = cms;
this.semanticPathService = semanticPathService;
this.protectedRoutes = protectedRoutes;
this.router = router;
this.winRef = winRef;
this.authRedirectService = authRedirectService;
}
/**
* Logout user from CDC
*/
logoutFromCdc() {
var _a, _b, _c;
(_c = (_b = (_a = this.winRef.nativeWindow) === null || _a === void 0 ? void 0 : _a['gigya']) === null || _b === void 0 ? void 0 : _b.accounts) === null || _c === void 0 ? void 0 : _c.logout();
}
/**
* @override
* @returns promise to resolve after complete logout
*/
logout() {
return Promise.all([super.logout(), this.logoutFromCdc()]);
}
}
CdcLogoutGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CdcLogoutGuard, deps: [{ token: i1.AuthService }, { token: i1.CmsService }, { token: i1.SemanticPathService }, { token: i1.ProtectedRoutesService }, { token: i2.Router }, { token: i1.WindowRef }, { token: i1.AuthRedirectService }], target: i0.ɵɵFactoryTarget.Injectable });
CdcLogoutGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CdcLogoutGuard, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CdcLogoutGuard, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i1.CmsService }, { type: i1.SemanticPathService }, { type: i1.ProtectedRoutesService }, { type: i2.Router }, { type: i1.WindowRef }, { type: i1.AuthRedirectService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RjLWxvZ291dC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2ludGVncmF0aW9uLWxpYnMvY2RjL3Jvb3QvZ3VhcmRzL2NkYy1sb2dvdXQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFFcEQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQUM3QyxZQUNZLElBQWlCLEVBQ2pCLEdBQWUsRUFDZixtQkFBd0MsRUFDeEMsZUFBdUMsRUFDdkMsTUFBYyxFQUNkLE1BQWlCLEVBQ2pCLG1CQUF3QztRQUVsRCxLQUFLLENBQ0gsSUFBSSxFQUNKLEdBQUcsRUFDSCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLE1BQU0sRUFDTixtQkFBbUIsQ0FDcEIsQ0FBQztRQWZRLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFVcEQsQ0FBQztJQUVEOztPQUVHO0lBQ08sYUFBYTs7UUFDckIsTUFBQSxNQUFBLE1BQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUF1QywwQ0FDbEQsT0FBTyxDQUNSLDBDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU07UUFDZCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOzsyR0FuQ1UsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBdXRoUmVkaXJlY3RTZXJ2aWNlLFxuICBBdXRoU2VydmljZSxcbiAgQ21zU2VydmljZSxcbiAgUHJvdGVjdGVkUm91dGVzU2VydmljZSxcbiAgU2VtYW50aWNQYXRoU2VydmljZSxcbiAgV2luZG93UmVmLFxufSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgTG9nb3V0R3VhcmQgfSBmcm9tICdAc3BhcnRhY3VzL3N0b3JlZnJvbnQnO1xuXG4vKipcbiAqIEBvdmVycmlkZVxuICpcbiAqIENEQyB2ZXJzaW9uIG9mIGxvZ291dCBndWFyZC4gSW4gYWRkaXRpb24gdG8gdG9rZW4gcmV2b2NhdGlvbiB3ZSBpbnZva2UgbG9nb3V0IG1ldGhvZCBmcm9tIENEQyBKUyBsaWIuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDZGNMb2dvdXRHdWFyZCBleHRlbmRzIExvZ291dEd1YXJkIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjbXM6IENtc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNlbWFudGljUGF0aFNlcnZpY2U6IFNlbWFudGljUGF0aFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHByb3RlY3RlZFJvdXRlczogUHJvdGVjdGVkUm91dGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHdpblJlZjogV2luZG93UmVmLFxuICAgIHByb3RlY3RlZCBhdXRoUmVkaXJlY3RTZXJ2aWNlOiBBdXRoUmVkaXJlY3RTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgYXV0aCxcbiAgICAgIGNtcyxcbiAgICAgIHNlbWFudGljUGF0aFNlcnZpY2UsXG4gICAgICBwcm90ZWN0ZWRSb3V0ZXMsXG4gICAgICByb3V0ZXIsXG4gICAgICBhdXRoUmVkaXJlY3RTZXJ2aWNlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dvdXQgdXNlciBmcm9tIENEQ1xuICAgKi9cbiAgcHJvdGVjdGVkIGxvZ291dEZyb21DZGMoKTogdm9pZCB7XG4gICAgKHRoaXMud2luUmVmLm5hdGl2ZVdpbmRvdyBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KT8uW1xuICAgICAgJ2dpZ3lhJ1xuICAgIF0/LmFjY291bnRzPy5sb2dvdXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHJldHVybnMgcHJvbWlzZSB0byByZXNvbHZlIGFmdGVyIGNvbXBsZXRlIGxvZ291dFxuICAgKi9cbiAgcHJvdGVjdGVkIGxvZ291dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbc3VwZXIubG9nb3V0KCksIHRoaXMubG9nb3V0RnJvbUNkYygpXSk7XG4gIH1cbn1cbiJdfQ==