Невозможно выполнить запрос, так как переменная, хранящая функцию проверки google-recaptcha, показывает undefined. Как исправить неопределенную проблему? - PullRequest
0 голосов
/ 07 мая 2020

Я использую 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 , похоже, работает правильно.

Подскажите, пожалуйста, что я здесь делаю не так? Я искал везде, но все никак не мог исправить.

...