@lacspace/jwt
JSON Web Tokens (HS256/384/512) with strict expiry/issuer/audience checks + secure random & CSRF tokens. Isomorphic over Web Crypto — Node, edge, browser.
npm i @lacspace/jwtUsage
import { sign, verify, JwtError } from "@lacspace/jwt";
const token = await sign({ sub: "user_1", role: "admin" }, process.env.JWT_SECRET!, {
expiresIn: 3600, // seconds
issuer: "lacspace",
});
try {
const payload = await verify(token, process.env.JWT_SECRET!, { issuer: "lacspace" });
payload.sub; // "user_1"
} catch (e) {
if (e instanceof JwtError) console.log(e.code); // "expired" | "signature" | …
}Exports 18
JwtErrorauthenticateclearAuthCookiecreateRemoteJWKScsrfTokendecodeexpressJwtextractBearerimportJwkimportPkcs8importSpkiissueTokenPairrandomTokenrotateRefreshTokensigntoAuthCookieverifyverifyRefreshTokenKeywords
More in Security Kit
Issue & verify API keys the right way — prefixed high-entropy keys, store only the SHA-256 hash, constant-time verify, last-4 display. Isomorphic over Web Crypto.
@lacspace/cryptoSafe, boring cryptography over Web Crypto — authenticated AES-256-GCM, PBKDF2 key derivation, SHA-256, HMAC, secure random and constant-time compare. Isomorphic (Node, edge, browser, RN).
@lacspace/headersSecure HTTP headers & a typed Content-Security-Policy builder — HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy. Framework-agnostic + Next.js. Zero-dependency, isomorphic.
@lacspace/lockAccount lockout & brute-force protection (server lock) — N-strikes, exponential backoff, self-resetting window, pluggable store. Zero-dependency, isomorphic.
@lacspace/mfaOrchestrate multi-factor auth — combine password + TOTP + passkeys into 2FA/3FA step-up flows with NIST assurance levels (AAL). Zero-dependency (bar @lacspace/otp), isomorphic.
@lacspace/otpTOTP & HOTP two-factor auth, Google Authenticator compatible — generate secrets, compute/verify codes and build otpauth:// QR URIs. Built on Web Crypto: runs on Node, edge and browser. Zero-dependency, isomorphic.