mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-08-05 09:21:30 +02:00
Good progress on 2FA/OTP config: Most of email register lifecycle complete
This commit is contained in:
parent
3efea3de9a
commit
94747cfe7e
4 changed files with 107 additions and 60 deletions
|
@ -20,6 +20,7 @@ const crypto = require('crypto');
|
|||
const qrGen = require('qrcode-generator');
|
||||
|
||||
exports.prepareOTP = prepareOTP;
|
||||
exports.createBackupCodes = createBackupCodes;
|
||||
exports.createQRCode = createQRCode;
|
||||
exports.otpFromType = otpFromType;
|
||||
exports.loginFactor2_OTP = loginFactor2_OTP;
|
||||
|
@ -82,7 +83,7 @@ function generateOTPBackupCode() {
|
|||
return bits.join('-');
|
||||
}
|
||||
|
||||
function generateNewBackupCodes() {
|
||||
function createBackupCodes() {
|
||||
const codes = [...Array(6)].map(() => generateOTPBackupCode());
|
||||
return codes;
|
||||
}
|
||||
|
@ -120,7 +121,7 @@ function createQRCode(otp, options, secret) {
|
|||
data : qrCode.createDataURL,
|
||||
img : qrCode.createImgTag,
|
||||
svg : qrCode.createSvgTag,
|
||||
}[options.qrType]();
|
||||
}[options.qrType](options.cellSize);
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
|
@ -141,10 +142,9 @@ function prepareOTP(otpType, options, cb) {
|
|||
otp.generateSecret() :
|
||||
crypto.randomBytes(64).toString('base64').substr(0, 32);
|
||||
|
||||
const backupCodes = generateNewBackupCodes();
|
||||
const qr = createQRCode(otp, options, secret);
|
||||
const qr = createQRCode(otp, options, secret);
|
||||
|
||||
return cb(null, { secret, backupCodes, qr } );
|
||||
return cb(null, { secret, qr } );
|
||||
}
|
||||
|
||||
function loginFactor2_OTP(client, token, cb) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue