UNPKG

@tapsellorg/angular-material-library

Version:

Angular library for Tapsell

90 lines (89 loc) 2.65 kB
import { Observable } from 'rxjs'; import { PghSsoImpersonateData } from '../login-as-user/login-as-user.model'; export interface PghSsoIframeMessage<T extends string = string, V = any> { type: `sso:${T}`; value: V; } export type PghSsoIframeAuthData = PghSsoIframeMessage<'auth', PghSsoAuthData>; export type PghSsoIframeLogout = PghSsoIframeMessage<'logout', {}>; export interface PghSsoAuthData { accessToken: string; refreshToken: string; } export interface PghSsoAuthDataRefreshTokenRequestModel { access_token: string; refresh_token: string; } export interface PghSsoAuthEnrichedData extends PghSsoAuthData { userId?: number; email: string; impersonatedByAdmin?: boolean; } /** * isInsideSsoPanel: if current panel is the sso panel * profileRoute: route to profile page in sso panel. Must start with `/` */ export interface PghSsoConfig { sharedIframeUrl: string; ssoPanelUrl: string; ssoApiBaseUrl: string; restrictedUrls: string[]; impersonateApiUrl: string; isInsideSsoPanel: boolean; changePasswordRoute: string; isDevMode: boolean; profileRoute: string; trustedDomains: string[]; redirectToSsoAfterLogout: boolean; pghCookieStoreDomain: string; pghRedirectUrlParam: string; refreshTokenRequest: (refreshToken: string) => Observable<PghSsoAuthDataRefreshTokenRequestModel>; getUUidRequest: (authData: PghSsoImpersonateData) => Observable<string>; getTokenRequest: (uuid: string) => Observable<PghSsoImpersonateData>; expireTokenAfterLogout: (authData: PghSsoImpersonateData) => Observable<string>; accessTokenExpiredError: (err: string) => boolean; refreshTokenExpiredError: (err: string) => boolean; } export interface PghTokenAccountData { accountId: number; ownerTapsellId: string; ownerId: number; userId?: number; ownerMediaadId: number; } export interface PghTokenAdminData { adminId: number; ownerTapsellId: string; ownerMediaadId: number; impersonated: boolean; } /** * sub: user's email */ export interface PghTokenPayload { sub: string; aud: string; nbf: number; scope: string[]; iss: string; exp: number; iat: number; authorities: string[]; userAccountData?: PghTokenAccountData; adminAccountData?: PghTokenAdminData; } export interface PghLoginQueryParams { redirect?: string; } export interface PghErrorResponse { errors?: Record<string, ErrorDetails[]>; error: ErrorDetails; code?: string; } interface ErrorDetails { message_en?: string; message_fa?: string; code: string; info?: string[]; } export {};