当前位置: 首页 > 知识库问答 >
问题:

Android recaptcha:验证用户的反应:所有的功能都必须称为客户端!我可以使用我的后端吗?

澹台逸明
2023-03-14

获取reCAPTCHA用户响应令牌,必须通过调用Verify the user's response中描述的siteverify方法来验证该令牌。

如果reCAPTCHA确信这是一个真实设备上的真实用户,那么它将返回一个令牌,没有任何疑问。否则,它将在返回令牌之前提供一个视觉/音频挑战来证明用户的人性化。

exports.verifyRecaptcha = functions.https.onRequest((request, response) => {

    const user_response_token = request.query.user_response_token;
    if(user_response_token == '') {
        throw new functions.https.HttpsError('invalid-argument', 'The function must be called with an adequat user response token.');
    }
    
    const remote_url = 'https://www.google.com/recaptcha/api/siteverify';
    const secret = null;
    request.post({url: remote_url, form:{secret: secret, response: user_response_token}}, function(error, response, body) {
        if(error) {
            throw new functions.https.HttpsError('unknown', error);
        }

        if(!response.statusCode != 200) {
            throw new functions.https.HttpsError('unknown', 'Something went wrong. Status code: ' + response.statusCode + '.');
        }

        if(!body.success) {
            throw new functions.https.HttpsError('unknown', 'Unable to verify this captcha.');
        }

        return response;    
    });

});

共有1个答案

漆雕原
2023-03-14

您可以获取从GetTokenResult()返回的令牌,将其发送到后端,并让后端调用SiteVerify的web API版本:

https://www.google.com/recaptcha/api/siteverify
 类似资料:
  • 我想做的是将这个JerseyClientConfig应用为所有创建的客户端的默认配置(不想每次构造客户端istance时都创建配置实例)。 是否可以在web.xml中设置它,就像我对服务器配置那样? 我在正式文档中没有找到任何关于它的信息。

  • 我用keytool创建了一个密钥对,用于客户端身份验证。从这个文件中,我将公钥导出为服务器的证书,以对客户端进行身份验证。 客户端设置: 将服务器证书加载到信任库文件中,并将密钥库文件用作密钥库。当我通过SSLContext代码和使用Apache HttpClient加载信任库和密钥库时,客户端工作: ssl输出显示客户端呈现证书链。使用SoapUI设置密钥库也很好。 我的问题是:通过vm参数(不

  • 因此,为了实现这个逻辑,我认为我需要在客户端验证JWT令牌。Q1,这是一个明智的做法吗。 Q2,我正在使用的库似乎需要一个公钥才能使用它的函数。我似乎没有公钥,只有一个秘密,这是我刚刚编造的,所以它不是用一对生成的。我的公钥从何而来,或者是否有另一种方法来验证我的令牌而不使用此方法? 这一切似乎应该是显而易见的,我错过了一些东西,所以很抱歉,如果这是一个愚蠢的问题,但我似乎找不到答案?

  • 应如何管理它们? 一些更具体的问题: 根据定义,本机应用程序(实际上是公共客户端)不能安全地存储其凭据(client_id+secret)。是未注册的客户吗?如果我不能使用秘密来验证/验证它,我还应该做什么? 客户端注册≠endpoint注册:第一个是关于注册客户端凭据();第二个关于注册客户端重定向endpoint。重定向endpoint注册是否足以授予客户端的真实性? 客户端凭据授予是否使用相

  • 问题内容: 使用Websphere MQ 8.x,我们是较大环境中的一个应用程序,并且是某些数据接口的客户端。我们的应用程序是在WildFly 9上运行的Java EE应用程序,该应用程序使用资源适配器()与EAR文件一起部署在同一AS中。我们在两个方向上与MQ服务器进行交互。因此,一方面,我们有一些MDB(由于历史渊源仍是EJB 2.x格式而没有注释)列出了一些队列,并由包含激活配置属性的部署描

  • 我有简单的客户端服务器应用程序使用RMI。服务器端应该生成某种PDF文件,客户端应该显示它。 当试图通过调用我自己的通用远程接口的正确方法在服务器端生成我的pdf时,被抛出在客户端。 我认为,使用RMI就像使用黑盒一样——客户机调用方法并接收响应,而不知道如何完成,对双方来说唯一的公共类是远程接口。此外,我认为这将允许我将客户端所需的依赖关系缩减到最小。 客户机必须让所有服务器的库都在其类路径中才