IGPAPI
    Preparing search index...

    Interface TwoFactorTicketsValue

    The process's two-factor tickets: the issued values behind the screens' opaque tickets, plus the two handoffs the login answer leaves for the screen it opens. It is a separate registry from the recovery one because the facts are different — a 2FA ticket addresses the ids one screen's flow issued for its own calls (the QPL pairs and the screen instances), not a recovery action's server params — and because the 2FA screens are reachable only after a login answer created their challenge. One value per runtime layer, so a ticket issued by one runtime is not resolved by another, and the registry goes with its process; it is process state and belongs in a checkpoint.

    A handoff is the login action's values waiting for the screen's enter, never an edge argument: a trail carries no server-issued value, and a retrace of the two-factor chain in a fresh process is given the handoff as a precondition (the checkpoint work, #314, carries a pending challenge between processes). The screen reads a handoff without spending it and clears it only after it opened, so a transient failure of its fetch can be retried.

    The methods are the library's own seam (the screens use them); a published declaration carries the empty shape, not the methods.

    interface TwoFactorTicketsValue {
        clearApprovalHandOff(): void;
        clearPickerHandOff(): void;
        handOffApproval(issued: IssuedTwoFactorApproval): void;
        handOffPicker(issued: IssuedTwoFactorPickerHandOff): void;
        issueApproval(
            issued: IssuedTwoFactorApproval,
        ): string & Brand<"TwoFactorApprovalTicket">;
        issueCode(
            issued: IssuedTwoFactorCode,
        ): string & Brand<"TwoFactorCodeTicket">;
        issuePicker(
            issued: IssuedTwoFactorPicker,
        ): string & Brand<"TwoFactorPickerTicket">;
        readApprovalHandOff(): IssuedTwoFactorApproval | undefined;
        readPickerHandOff(): IssuedTwoFactorPickerHandOff | undefined;
        resolveApproval(
            ticket: string & Brand<"TwoFactorApprovalTicket">,
        ): IssuedTwoFactorApproval | undefined;
        resolveCode(
            ticket: string & Brand<"TwoFactorCodeTicket">,
        ): IssuedTwoFactorCode | undefined;
        resolvePicker(
            ticket: string & Brand<"TwoFactorPickerTicket">,
        ): IssuedTwoFactorPicker | undefined;
    }
    Index

    Methods

    • Internal

      Returns void

    • Internal

      Returns void

    • Internal

      Parameters

      • issued: IssuedTwoFactorApproval

      Returns void

    • Internal

      Parameters

      • issued: IssuedTwoFactorPickerHandOff

      Returns void

    • Internal

      Parameters

      • issued: IssuedTwoFactorApproval

      Returns string & Brand<"TwoFactorApprovalTicket">

    • Internal

      Parameters

      • issued: IssuedTwoFactorCode

      Returns string & Brand<"TwoFactorCodeTicket">

    • Internal

      Parameters

      • issued: IssuedTwoFactorPicker

      Returns string & Brand<"TwoFactorPickerTicket">

    • Internal

      Returns IssuedTwoFactorApproval | undefined

    • Internal

      Returns IssuedTwoFactorPickerHandOff | undefined

    • Internal

      Parameters

      • ticket: string & Brand<"TwoFactorApprovalTicket">

      Returns IssuedTwoFactorApproval | undefined

    • Internal

      Parameters

      • ticket: string & Brand<"TwoFactorCodeTicket">

      Returns IssuedTwoFactorCode | undefined

    • Internal

      Parameters

      • ticket: string & Brand<"TwoFactorPickerTicket">

      Returns IssuedTwoFactorPicker | undefined