interface LearningSdkAuthHooks {
    broadcastChannelName?: string;
    maxRetries?: number;
    proactiveRefreshLeadMs?: number;
    refreshUrl?: string | (() => string);
    timeoutMs?: number;
    getAccessToken(): null | string;
    getAccessTokenExpiresAt?(): null | string;
    onAuthFailure(): void;
    onRefreshError?(error: RefreshFailedError): void;
    setAccessToken(token: string, expiresAtIso: string): void;
}

Properties

broadcastChannelName?: string

BroadcastChannel 이름. default 'learning-sdk-auth'.

maxRetries?: number

최대 retry 횟수 (network / 5xx). default 3.

proactiveRefreshLeadMs?: number

Proactive refresh — access 만료 N ms 전 미리 refresh. 0 이면 비활성. default 30000 (30s).

refreshUrl?: string | (() => string)

Refresh endpoint 의 absolute URL 또는 baseUrl 기준 path. default '/auth/refresh-token'. 함수로 주면 refresh 시점마다 동적 해석(예: staff/tenant 모드별 endpoint).

timeoutMs?: number

요청 timeout (ms). 0 이면 미적용. default 30000.

Methods

  • 인증이 회복 불가능하게 죽었을 때 호출. 보통 sign-in 페이지 redirect.

    호출 조건: refresh endpoint 가 definitive 4xx (401 refreshToken/Invalid 등, 408/429 제외) 로 거부 — proactive(만료 임박 선제 refresh)/reactive(401 후 refresh) 어느 경로든 동일하게, refresh 시도당 1회. network 단절 / 5xx 처럼 일시적일 수 있는 실패에는 호출하지 않음 — 필요하면 onRefreshError 로 직접 처리.

    Returns void

  • Refresh 실패 시마다 호출 (옵션). definitive 여부와 무관 — network / 5xx 포함. error.status 로 refresh endpoint 의 HTTP status 확인 가능 (network 실패면 undefined). refresh 시도당 1회 (동시 요청들이 한 refresh 를 공유해도 중복 호출 없음).

    Parameters

    Returns void

  • Refresh 성공 시 SDK 가 호출. caller 가 메모리/세션스토리지 등에 저장.

    Parameters

    • token: string
    • expiresAtIso: string

    Returns void