Type Alias SessionKitOptions<TPayload, TPrincipal>

SessionKitOptions: {
    store: SessionStore<TPayload>;
    cookie?: CookieOptions;
    session: {
        ttlSeconds: number;
        rolling?: boolean;
        touchEverySeconds?: number;
        renewBeforeSeconds?: number;
    };
    principalFactory: (payload: TPayload) => TPrincipal;
    payloadTransformer?: (raw: unknown) => TPayload;
    token?: {
        shouldRefresh: (payload: TPayload, nowMs: number) => boolean;
        refresh: (
            payload: TPayload,
        ) => Promise<{ payload: TPayload; ttlSeconds?: number }>;
        onRefreshFail?: "unauth" | "revoke";
    };
    lockProvider?: LockProvider;
    hooks?: {
        onUnauthorized?: (ctx: HttpContext) => Promise<void> | void;
        onInvalidSession?: (
            ctx: HttpContext,
            reason: ErrorCode | string,
        ) => Promise<void> | void;
    };
    logger?: Logger;
}

Root configuration for creating a SessionKit instance.

Type Parameters

  • TPayload
  • TPrincipal

Type declaration

  • store: SessionStore<TPayload>
  • Optionalcookie?: CookieOptions
  • session: {
        ttlSeconds: number;
        rolling?: boolean;
        touchEverySeconds?: number;
        renewBeforeSeconds?: number;
    }
  • principalFactory: (payload: TPayload) => TPrincipal
  • OptionalpayloadTransformer?: (raw: unknown) => TPayload
  • Optionaltoken?: {
        shouldRefresh: (payload: TPayload, nowMs: number) => boolean;
        refresh: (
            payload: TPayload,
        ) => Promise<{ payload: TPayload; ttlSeconds?: number }>;
        onRefreshFail?: "unauth" | "revoke";
    }
  • OptionallockProvider?: LockProvider
  • Optionalhooks?: {
        onUnauthorized?: (ctx: HttpContext) => Promise<void> | void;
        onInvalidSession?: (
            ctx: HttpContext,
            reason: ErrorCode | string,
        ) => Promise<void> | void;
    }
  • Optionallogger?: Logger