@bitblit/ratchet-common
Version:
Common tools for general use
27 lines • 1.19 kB
JavaScript
import { Logger } from '../../logger/logger.js';
import { StringRatchet } from '../../lang/string-ratchet.js';
import fetch from 'cross-fetch';
export class GoogleRecaptchaRatchet {
static GOOGLE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify?secret=${KEY}&response=${TOKEN}';
static async verifyRecaptchaToken(keySecret, token, fetchFn = fetch) {
Logger.debug('Verifying recaptcha token : %s', token);
let rval = null;
if (!StringRatchet.safeString(token)) {
Logger.warn('Recaptcha validation error, no token passed : %s', token);
return rval;
}
Logger.info('Validating Recaptcha via Google API : %s', token);
const url = StringRatchet.simpleTemplateFill(GoogleRecaptchaRatchet.GOOGLE_VERIFY_URL, { KEY: keySecret, TOKEN: token }, true);
try {
const resp = await fetchFn(url);
const body = await resp.json();
rval = body && body.success;
}
catch (err) {
Logger.error('Failed to read from google : %s', err);
rval = false;
}
return rval;
}
}
//# sourceMappingURL=google-recaptcha-ratchet.js.map