2017-02-15 4 views
2

В настоящее время я разрабатываю приложение с Angular 2 и хочу использовать использование ReCaptcha Google для проверки пользователя. Тем не менее, все созданные сообществом модули, которые я видел до сих пор, похоже, не используют аутентификацию на стороне сервера с помощью секретного ключа, который предоставляется после регистрации API.Внедрение Google ReCaptcha In Angular2

Я ранее реализовал ReCaptcha, используя явную функцию визуализации с помощью Javascript. Тем не менее, я не уверен, как реализовать ту же функциональность в моем Angular 2 Typcript Code. В идеале я хотел бы, чтобы пользователь нажал кнопку ReCaptcha, появится кнопка отправки после завершения ReCaptcha, которая позволяет пользователю отправить форму, а затем мой серверный сервер завершит окончательную проверку, включающую секретный ключ. Это будет сделано с помощью вызова http.post. Однако, подчиняясь обычно не дает мне с «г-ReCaptcha-ответ», что я должен получать посылки через http.post, когда пользователь отправляет форму, как описано в руководствах ReCaptcha:

https://developers.google.com/recaptcha/docs/verify

Если у кого есть какие-либо советы или опыт, пожалуйста, дайте мне знать. Кроме того, если есть дополнительная информация, пожалуйста, спросите, я относительно новичок в размещении вопросов здесь.

+0

Если вы ищете для PHP части уравнения можно посмотреть на [этот ответ] (http://stackoverflow.com/a/27439796/648350). Для стороны ng2 вам необходимо явно включить значение recaptcha в сообщение на ваш сервер. ([angular2-google-recaptcha] (https://github.com/rajan-g/angular2-google-recaptcha/tree/master/example) содержит демонстрацию того, как это сделать) – haxxxton

ответ

0

Существует фантастическое сообщение, объясняющее это в угловом2. Я думаю, это может дать вам представление, как подойти к этому.
Вы должны сделать звонок на ваш серверный сервер после того, как пользователь нажмет кнопку recaptcha. После этого вы можете отправить ключ своего сайта в google recaptcha api для проверки.

app.get('/validate_captcha', (req, res) => { 
     const options = { 
     method: 'POST', 
     uri: 'https://www.google.com/recaptcha/api/siteverify', 
     qs: { 
      secret, 
      response: req.query.token 
     }, 
     json: true 
     }; 

     rp(options) 
     .then(response => res.json(response)) 
     .catch(() => {}); 

    }); 

Это поможет вам через бэкэнд-сторону.
Как сказано в этой статье или документе, вы получите grecaptcha-response во внешнем интерфейсе.
Посмотрите на эту ссылку recaptcha