22 lines
494 B
TypeScript
22 lines
494 B
TypeScript
import { authenticator } from 'otplib';
|
|
|
|
export function generateTotpSecret(): string {
|
|
return authenticator.generateSecret();
|
|
}
|
|
|
|
export function verifyTotpCode(secret: string, code: string): boolean {
|
|
try {
|
|
return authenticator.verify({ token: code.replace(/\s+/gu, ''), secret });
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
export function buildOtpAuthUrl(
|
|
issuer: string,
|
|
accountName: string,
|
|
secret: string,
|
|
): string {
|
|
return authenticator.keyuri(accountName, issuer, secret);
|
|
}
|