Я использую recaptcha-v2 (https://www.npmjs.com/package/recaptcha-v2) на сервере nodejs для проверки капчи с помощью graphql. Но я не могу выполнить запрос, так как объект, который я назначил для проверки функции captcha, отображает undefined . На стороне клиента используется response-google-recaptcha (https://www.npmjs.com/package/react-google-recaptcha).
Вот мой вспомогательный файл (recaptcha. js)
const Bluebird = require('bluebird');
const Recaptcha = require('recaptcha-v2').Recaptcha;
exports.verifyRecaptcha = (recaptchaData) => {
return new Bluebird((resolve, reject) => {
const recaptcha = new Recaptcha(process.env.RECAPTCHA_SITE_KEY, process.env.RECAPTCHA_SECRET_KEY, recaptchaData);
console.log("recapthca value: ", recaptcha ); //this one is being displayed correctly !
recaptcha.verify((success) => {
if (success) {
console.log("check: ", success) //this one consoles with: true
return resolve();
}
console.log("reCheck: ") // hopefully, it is not being executed
reject(new Error());
});
});
};
И вот основная мутация регистрации:
const recaptchaHelpers = require('./recaptcha');
signUp: async (parent, { input }, { req }) => {
try {
const recaptchaData = {
remoteip: req.connection.remoteAddress,
response: req.body.variables.input.captcha,
secret: process.env.RECAPTCHA_SECRET_KEY,
};
const test = await recaptchaHelpers.verifyRecaptcha(recaptchaData);
// test is displaying undefined here..
Я хочу выполнить запрос на основе результата, представленного в «тесте», но «тест» отображается как неопределенный. Однако функция verifyRecaptcha , похоже, работает правильно.
Подскажите, пожалуйста, что я здесь делаю не так? Я искал везде, но все никак не мог исправить.