react-next-captcha
Version:
A customizable captcha package for use with Next.js and React.
40 lines (31 loc) • 1.04 kB
JavaScript
const generateCaptcha = require('./lib/generateCaptcha');
const verifyCaptcha = require('./lib/verifyCaptcha');
let captchasData = [];
function createCaptcha(options = {}, customSalt) {
const captcha = generateCaptcha(options, customSalt);
if (captchasData.length > 1000) {
captchasData = [];
}
captchasData.push({ hash: captcha.hash, isUsed: false, salt: customSalt });
return captcha;
}
function checkCaptcha(text, hash, customSalt) {
if (!Array.isArray(captchasData)) {
return { success: false, message: 'Internal error: captchasData is not an array' };
}
let captchaDataCheck = null;
for (let i = 0; i < captchasData.length; i++) {
if (captchasData[i].hash === hash) {
captchaDataCheck = captchasData[i];
break;
}
}
if (!captchaDataCheck) {
return { success: false, message: 'Captcha not found' };
}
return verifyCaptcha(text, hash, captchaDataCheck.salt, captchasData);
}
module.exports = {
createCaptcha,
checkCaptcha,
};