UNPKG

@spartacus/core

Version:

Spartacus - the core framework

102 lines 12.9 kB
import { Inject, Injectable, PLATFORM_ID } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "angular-oauth2-oidc"; import * as i2 from "./auth-config.service"; import * as i3 from "../../../window/window-ref"; /** * Wrapper service on the library OAuthService. Normalizes the lib API for services. * Use this service when you want to access low level OAuth library methods. */ export class OAuthLibWrapperService { // TODO: Remove platformId dependency in 4.0 constructor(oAuthService, authConfigService, platformId, winRef) { this.oAuthService = oAuthService; this.authConfigService = authConfigService; this.platformId = platformId; this.winRef = winRef; this.events$ = this.oAuthService.events; this.initialize(); } initialize() { var _a, _b, _c, _d; const isSSR = !this.winRef.isBrowser(); this.oAuthService.configure(Object.assign({ tokenEndpoint: this.authConfigService.getTokenEndpoint(), loginUrl: this.authConfigService.getLoginUrl(), clientId: this.authConfigService.getClientId(), dummyClientSecret: this.authConfigService.getClientSecret(), revocationEndpoint: this.authConfigService.getRevokeEndpoint(), logoutUrl: this.authConfigService.getLogoutUrl(), userinfoEndpoint: this.authConfigService.getUserinfoEndpoint(), issuer: (_b = (_a = this.authConfigService.getOAuthLibConfig()) === null || _a === void 0 ? void 0 : _a.issuer) !== null && _b !== void 0 ? _b : this.authConfigService.getBaseUrl(), redirectUri: (_d = (_c = this.authConfigService.getOAuthLibConfig()) === null || _c === void 0 ? void 0 : _c.redirectUri) !== null && _d !== void 0 ? _d : (!isSSR ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.winRef.nativeWindow.location.origin : '') }, this.authConfigService.getOAuthLibConfig())); } /** * Authorize with ResourceOwnerPasswordFlow. * * @param userId * @param password * * @return token response from the lib */ authorizeWithPasswordFlow(userId, password) { return this.oAuthService.fetchTokenUsingPasswordFlow(userId, password); } /** * Refresh access_token. */ refreshToken() { this.oAuthService.refreshToken(); } /** * Revoke access tokens and clear tokens in lib state. */ revokeAndLogout() { return new Promise((resolve) => { this.oAuthService .revokeTokenAndLogout() .catch(() => { // when there would be some kind of error during revocation we can't do anything else, so at least we logout user. this.oAuthService.logOut(); }) .finally(() => { resolve(); }); }); } /** * Clear tokens in library state (no revocation). */ logout() { this.oAuthService.logOut(); } /** * Returns Open Id token. Might be empty, when it was not requested with the `responseType` config. * * @return id token */ getIdToken() { return this.oAuthService.getIdToken(); } /** * Initialize Implicit Flow or Authorization Code flows with the redirect to OAuth login url. */ initLoginFlow() { return this.oAuthService.initLoginFlow(); } /** * Tries to login user based on `code` or `token` present in the url. */ tryLogin() { return this.oAuthService.tryLogin({ // We don't load discovery document, because it doesn't contain revoke endpoint information disableOAuth2StateCheck: true, }); } } OAuthLibWrapperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OAuthLibWrapperService, deps: [{ token: i1.OAuthService }, { token: i2.AuthConfigService }, { token: PLATFORM_ID }, { token: i3.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); OAuthLibWrapperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OAuthLibWrapperService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OAuthLibWrapperService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: i2.AuthConfigService }, { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }, { type: i3.WindowRef }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtbGliLXdyYXBwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2F1dGgvdXNlci1hdXRoL3NlcnZpY2VzL29hdXRoLWxpYi13cmFwcGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU1oRTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLDRDQUE0QztJQUM1QyxZQUNZLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNmLFVBQWtCLEVBQ3ZDLE1BQWlCO1FBSGpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3ZDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFQN0IsWUFBTyxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQVN6RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVTLFVBQVU7O1FBQ2xCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsaUJBQ3pCLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsRUFDeEQsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFDOUMsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFDOUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxFQUMzRCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsRUFDOUQsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFDaEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLEVBQzlELE1BQU0sRUFDSixNQUFBLE1BQUEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLDBDQUFFLE1BQU0sbUNBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsRUFDckMsV0FBVyxFQUNULE1BQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsMENBQUUsV0FBVyxtQ0FDdkQsQ0FBQyxDQUFDLEtBQUs7Z0JBQ0wsQ0FBQyxDQUFDLG9FQUFvRTtvQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsRUFDN0MsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gseUJBQXlCLENBQ3ZCLE1BQWMsRUFDZCxRQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVk7aUJBQ2Qsb0JBQW9CLEVBQUU7aUJBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ1Ysa0hBQWtIO2dCQUNsSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ2hDLDJGQUEyRjtZQUMzRix1QkFBdUIsRUFBRSxJQUFJO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQTFHVSxzQkFBc0IsK0VBT3ZCLFdBQVc7dUhBUFYsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjtxSEFROEMsTUFBTTswQkFBaEQsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhFdmVudCwgT0F1dGhTZXJ2aWNlLCBUb2tlblJlc3BvbnNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICcuLi8uLi8uLi93aW5kb3cvd2luZG93LXJlZic7XG5pbXBvcnQgeyBBdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXV0aC1jb25maWcuc2VydmljZSc7XG5cbi8qKlxuICogV3JhcHBlciBzZXJ2aWNlIG9uIHRoZSBsaWJyYXJ5IE9BdXRoU2VydmljZS4gTm9ybWFsaXplcyB0aGUgbGliIEFQSSBmb3Igc2VydmljZXMuXG4gKiBVc2UgdGhpcyBzZXJ2aWNlIHdoZW4geW91IHdhbnQgdG8gYWNjZXNzIGxvdyBsZXZlbCBPQXV0aCBsaWJyYXJ5IG1ldGhvZHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPQXV0aExpYldyYXBwZXJTZXJ2aWNlIHtcbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxPQXV0aEV2ZW50PiA9IHRoaXMub0F1dGhTZXJ2aWNlLmV2ZW50cztcblxuICAvLyBUT0RPOiBSZW1vdmUgcGxhdGZvcm1JZCBkZXBlbmRlbmN5IGluIDQuMFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGF1dGhDb25maWdTZXJ2aWNlOiBBdXRoQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcm90ZWN0ZWQgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHByb3RlY3RlZCB3aW5SZWY6IFdpbmRvd1JlZlxuICApIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplKCkge1xuICAgIGNvbnN0IGlzU1NSID0gIXRoaXMud2luUmVmLmlzQnJvd3NlcigpO1xuICAgIHRoaXMub0F1dGhTZXJ2aWNlLmNvbmZpZ3VyZSh7XG4gICAgICB0b2tlbkVuZHBvaW50OiB0aGlzLmF1dGhDb25maWdTZXJ2aWNlLmdldFRva2VuRW5kcG9pbnQoKSxcbiAgICAgIGxvZ2luVXJsOiB0aGlzLmF1dGhDb25maWdTZXJ2aWNlLmdldExvZ2luVXJsKCksXG4gICAgICBjbGllbnRJZDogdGhpcy5hdXRoQ29uZmlnU2VydmljZS5nZXRDbGllbnRJZCgpLFxuICAgICAgZHVtbXlDbGllbnRTZWNyZXQ6IHRoaXMuYXV0aENvbmZpZ1NlcnZpY2UuZ2V0Q2xpZW50U2VjcmV0KCksXG4gICAgICByZXZvY2F0aW9uRW5kcG9pbnQ6IHRoaXMuYXV0aENvbmZpZ1NlcnZpY2UuZ2V0UmV2b2tlRW5kcG9pbnQoKSxcbiAgICAgIGxvZ291dFVybDogdGhpcy5hdXRoQ29uZmlnU2VydmljZS5nZXRMb2dvdXRVcmwoKSxcbiAgICAgIHVzZXJpbmZvRW5kcG9pbnQ6IHRoaXMuYXV0aENvbmZpZ1NlcnZpY2UuZ2V0VXNlcmluZm9FbmRwb2ludCgpLFxuICAgICAgaXNzdWVyOlxuICAgICAgICB0aGlzLmF1dGhDb25maWdTZXJ2aWNlLmdldE9BdXRoTGliQ29uZmlnKCk/Lmlzc3VlciA/P1xuICAgICAgICB0aGlzLmF1dGhDb25maWdTZXJ2aWNlLmdldEJhc2VVcmwoKSxcbiAgICAgIHJlZGlyZWN0VXJpOlxuICAgICAgICB0aGlzLmF1dGhDb25maWdTZXJ2aWNlLmdldE9BdXRoTGliQ29uZmlnKCk/LnJlZGlyZWN0VXJpID8/XG4gICAgICAgICghaXNTU1JcbiAgICAgICAgICA/IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICB0aGlzLndpblJlZi5uYXRpdmVXaW5kb3chLmxvY2F0aW9uLm9yaWdpblxuICAgICAgICAgIDogJycpLFxuICAgICAgLi4udGhpcy5hdXRoQ29uZmlnU2VydmljZS5nZXRPQXV0aExpYkNvbmZpZygpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhvcml6ZSB3aXRoIFJlc291cmNlT3duZXJQYXNzd29yZEZsb3cuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWRcbiAgICogQHBhcmFtIHBhc3N3b3JkXG4gICAqXG4gICAqIEByZXR1cm4gdG9rZW4gcmVzcG9uc2UgZnJvbSB0aGUgbGliXG4gICAqL1xuICBhdXRob3JpemVXaXRoUGFzc3dvcmRGbG93KFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLmZldGNoVG9rZW5Vc2luZ1Bhc3N3b3JkRmxvdyh1c2VySWQsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIGFjY2Vzc190b2tlbi5cbiAgICovXG4gIHJlZnJlc2hUb2tlbigpOiB2b2lkIHtcbiAgICB0aGlzLm9BdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZva2UgYWNjZXNzIHRva2VucyBhbmQgY2xlYXIgdG9rZW5zIGluIGxpYiBzdGF0ZS5cbiAgICovXG4gIHJldm9rZUFuZExvZ291dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlXG4gICAgICAgIC5yZXZva2VUb2tlbkFuZExvZ291dCgpXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgLy8gd2hlbiB0aGVyZSB3b3VsZCBiZSBzb21lIGtpbmQgb2YgZXJyb3IgZHVyaW5nIHJldm9jYXRpb24gd2UgY2FuJ3QgZG8gYW55dGhpbmcgZWxzZSwgc28gYXQgbGVhc3Qgd2UgbG9nb3V0IHVzZXIuXG4gICAgICAgICAgdGhpcy5vQXV0aFNlcnZpY2UubG9nT3V0KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRva2VucyBpbiBsaWJyYXJ5IHN0YXRlIChubyByZXZvY2F0aW9uKS5cbiAgICovXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLm9BdXRoU2VydmljZS5sb2dPdXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE9wZW4gSWQgdG9rZW4uIE1pZ2h0IGJlIGVtcHR5LCB3aGVuIGl0IHdhcyBub3QgcmVxdWVzdGVkIHdpdGggdGhlIGByZXNwb25zZVR5cGVgIGNvbmZpZy5cbiAgICpcbiAgICogQHJldHVybiBpZCB0b2tlblxuICAgKi9cbiAgZ2V0SWRUb2tlbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5nZXRJZFRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBJbXBsaWNpdCBGbG93IG9yIEF1dGhvcml6YXRpb24gQ29kZSBmbG93cyB3aXRoIHRoZSByZWRpcmVjdCB0byBPQXV0aCBsb2dpbiB1cmwuXG4gICAqL1xuICBpbml0TG9naW5GbG93KCkge1xuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZXMgdG8gbG9naW4gdXNlciBiYXNlZCBvbiBgY29kZWAgb3IgYHRva2VuYCBwcmVzZW50IGluIHRoZSB1cmwuXG4gICAqL1xuICB0cnlMb2dpbigpIHtcbiAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UudHJ5TG9naW4oe1xuICAgICAgLy8gV2UgZG9uJ3QgbG9hZCBkaXNjb3ZlcnkgZG9jdW1lbnQsIGJlY2F1c2UgaXQgZG9lc24ndCBjb250YWluIHJldm9rZSBlbmRwb2ludCBpbmZvcm1hdGlvblxuICAgICAgZGlzYWJsZU9BdXRoMlN0YXRlQ2hlY2s6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==