authkit-js
Version:
Express auth toolkit (JWT, Sessions with Redis, Google/GitHub OAuth) in JavaScript
26 lines (13 loc) • 581 B
JavaScript
const speakeasy = require('speakeasy');
const qrcode = require('qrcode');
function generateSecret(label) {
const secret = speakeasy.generateSecret({ name: label });
return secret; // contains ascii, hex, base32, otpauth_url
}
async function generateQRCodeDataURL(otpauthUrl) {
return await qrcode.toDataURL(otpauthUrl);
}
function verifyToken(secretBase32, token, window = 1) {
return speakeasy.totp.verify({ secret: secretBase32, encoding: 'base32', token, window });
}
module.exports = { generateSecret, generateQRCodeDataURL, verifyToken };