UNPKG

@tree-house/authentication

Version:
28 lines (27 loc) 1.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyToken = exports.generateQrCode = exports.generate2FAKey = void 0; const speakeasy_1 = __importDefault(require("speakeasy")); const qrcode_1 = __importDefault(require("qrcode")); function generate2FAKey(options) { return speakeasy_1.default.generateSecret(options); } exports.generate2FAKey = generate2FAKey; function generateQrCode(options) { return new Promise((resolve, reject) => { const key = generate2FAKey(options); qrcode_1.default.toDataURL(key.otpauth_url, {}, (error, imageData) => { if (error) return reject(error); return resolve({ imageData, secret: key.base32, url: key.otpauth_url }); }); }); } exports.generateQrCode = generateQrCode; function verifyToken(secret, token) { return speakeasy_1.default.totp.verify({ secret, token, encoding: 'base32' }); } exports.verifyToken = verifyToken;