UNPKG

@bitblit/ratchet-common

Version:

Common tools for general use

27 lines 1.19 kB
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