Auth0 authentication provider implementation - v3.0.0

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

Hierarchy (view full)

Constructors

Properties

_initialized: boolean = false
auth: AuthService<AppState>
isAuthenticated$: BehaviorSubject<boolean> = ...
type: "auth0" = MJAuth0Provider.PROVIDER_TYPE

Provider type identifier Must be implemented by concrete providers

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

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 Auth0 Stored as a static property for the factory to access without instantiation

    Parameters

    • environment: Record<string, unknown>

    Returns (typeof AuthService | typeof AuthGuard | {
        deps?: undefined;
        provide: InjectionToken<AuthConfig>;
        useFactory?: undefined;
        useValue: {
            authorizationParams: {
                redirect_uri: string;
                scope: string;
            };
            cacheLocation: string;
            clientId: unknown;
            domain: unknown;
            useRefreshTokens: boolean;
            useRefreshTokensFallback: boolean;
        };
    } | {
        deps: typeof AuthClientConfig[];
        provide: InjectionToken<Auth0Client>;
        useFactory: ((configFactory) => Auth0Client);
        useValue?: undefined;
    })[]