@aspect-evp/verifier
v0.1.1
Published
EVP token verification for web applications (Relying Parties)
Maintainers
Readme
@aspect-evp/verifier
EVP token verification for web applications (Relying Parties).
Installation
npm install @aspect-evp/verifierUsage
import { EmailVerificationVerifier } from '@aspect-evp/verifier';
const verifier = new EmailVerificationVerifier({
rpOrigin: 'https://myapp.example.com'
});
// When you receive an SD-JWT+KB from the browser
async function handleEmailVerification(sdJwtKb: string, sessionNonce: string) {
try {
const result = await verifier.verify(sdJwtKb, sessionNonce);
console.log('Verified email:', result.email);
console.log('Issuer:', result.issuer);
console.log('Issued at:', result.issuedAt);
// Proceed with user registration/login
} catch (error) {
if (error instanceof EVPError) {
console.log('Verification failed:', error.code);
}
}
}Configuration
const verifier = new EmailVerificationVerifier({
// Required: your application's origin
rpOrigin: 'https://myapp.example.com',
// Optional: clock tolerance in seconds (default: 60)
clockTolerance: 120,
// Optional: custom DNS resolver
dnsResolver: customResolver,
// Optional: custom fetch for JWKS
fetch: customFetch,
});DNS Resolvers
import {
EmailVerificationVerifier,
defaultDnsResolver, // DNS-over-HTTPS (Cloudflare)
nodeDnsResolver // Node.js dns/promises
} from '@aspect-evp/verifier';
// Use Node.js DNS (faster in server environments)
const verifier = new EmailVerificationVerifier({
rpOrigin: 'https://myapp.example.com',
dnsResolver: nodeDnsResolver,
});Verification Result
interface VerificationResult {
email: string; // Verified email address
issuer: string; // Issuer domain
issuedAt: Date; // Token issuance time
}Documentation
See the full documentation for complete API reference.
License
MIT
