在Angular2

时间:2017-02-15 05:19:25

标签: javascript php html angular recaptcha

我目前正在使用Angular 2开发一个应用程序,并希望使用Google的ReCaptcha进行用户验证。但是,到目前为止,我所看到的所有社区创建的模块似乎都没有使用服务器端身份验证和注册API时提供的密钥。

我之前使用Javascript的显式渲染功能实现了ReCaptcha。但是,我不确定如何在我的Angular 2 Typescript Code中实现相同的功能。理想情况下,我希望用户单击ReCaptcha,一旦ReCaptcha完成后出现提交按钮,允许用户提交表单,然后我的后端服务器将完成包含密钥的最终验证。这将通过http.post调用完成。但是,正常提交并不能为我提供" g-recaptcha-response"当用户按照ReCaptcha指南中的描述提交表单时,我应该通过http.post发送:

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

如果有人有任何提示或经验,请告诉我。此外,如果需要其他信息,请询问,我在这里发布问题相对较新。

1 个答案:

答案 0 :(得分:0)

在angular2中有一个很棒的帖子解释这个。我想这可能会让你知道如何处理这个问题 用户单击重新签名按钮后,您必须调用后端服务器。在此之后,您可以将您的网站密钥发送到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