Okta authentication provider implementation - v3.0.0

Implements the abstract methods from MJAuthBase to hide Okta-specific details. The key abstraction is that Okta stores the JWT in IDToken.idToken, but consumers never need to know this detail.

Hierarchy (view full)

Constructors

Properties

isAuthenticated$: BehaviorSubject<boolean> = ...
isRefreshing: boolean = false
oktaAuth: OktaAuth
oktaConfig: OktaAuthOptions & {
    domain?: string;
}

Type declaration

  • Optional domain?: string
type: "okta" = MJOktaProvider.PROVIDER_TYPE

Provider type identifier Must be implemented by concrete providers

userEmail$: BehaviorSubject<string> = ...
userInfo$: BehaviorSubject<null | StandardUserInfo> = ...
PROVIDER_TYPE: "okta" = 'okta'

Accessors

Methods

  • Get profile picture URL from auth provider

    Returns the user's profile picture URL if available from the auth provider. This abstracts away provider-specific logic:

    • Microsoft/MSAL: Fetches from Graph API
    • Auth0/Okta: Returns from user claims

    Returns Promise<null | string>

    Promise resolving to image URL or null if not available

    Example

    const pictureUrl = await this.authBase.getProfilePictureUrl();
    if (pictureUrl) {
    this.userAvatar = pictureUrl;
    }
  • Refresh authentication token

    Attempts to obtain a fresh authentication token using the provider's refresh mechanism. If silent refresh fails due to session expiry, the provider will handle re-authentication automatically (which may involve redirecting to the auth provider's login page).

    Returns StandardAuthToken on success, or throws on complete failure.

    IMPORTANT: If the provider requires interactive re-authentication (redirect or popup), this method may never return. The app will reload after authentication completes and re-initialize with a fresh token.

    Returns Promise<StandardAuthToken>

    Promise resolving to StandardAuthToken or throws on failure

    Example

    const token = await this.authBase.refreshToken();
    return token.idToken; // Always succeeds or throws
  • Factory function to provide Angular dependencies required by Okta Stored as a static property for the factory to access without instantiation

    Parameters

    • environment: Record<string, unknown>

    Returns {
        provide: string;
        useValue: {
            clientId: unknown;
            domain: unknown;
            issuer: {};
            redirectUri: {};
            scopes: {};
        };
    }[]