← All packages

@lacspace/mfa

v1.1.3Security Kit2 @lacspace deps

Orchestrate multi-factor auth — combine password + TOTP + passkeys into 2FA/3FA step-up flows with NIST assurance levels (AAL). Zero-dependency (bar @lacspace/otp), isomorphic.

npm i @lacspace/mfa

Usage

mfa.ts
import { mfaSession } from "@lacspace/mfa";

const session = mfaSession({
  factors: [
    { id: "password", type: "knowledge" },
    { id: "totp", type: "possession" },
    { id: "passkey", type: "inherence" },
  ],
  policy: { minFactors: 2, minAAL: 2 },
});

session.markVerified("password");
session.satisfied;          // false — one factor

session.markVerified("totp");
session.satisfied;          // true
session.aal;                // 2

// require the strongest assurance (adds a passkey → AAL3)
const step3 = session.state(); // { satisfied, aal, needFactors, needTypes, verifiedFactors }

Exports 8

AALMfaSessionassuranceLevelmfaSessionverifyBackupCodeFactorverifyPasskeyFactorverifyPasswordFactorverifyTotpFactor

Keywords

mfa2fa3famulti-factorstep-up-authaal

More in Security Kit