Google recaptcha 登录抛出错误 'error-codes': [ 'invalid-input-secret' ]

Google recaptcha login is throwing error 'error-codes': [ 'invalid-input-secret' ]

客户端:

grecaptcha.ready(function() {
      grecaptcha.execute('6Le4oroZABBXXIQCQkAYCXYSekNQnWExTeNUBZ-B', {action: 'submit'}).then(function(token) {
          $scope.userData['repatcha_token'] = token

        $http.post('/api/user/login', {
            userData: $scope.userData
        }).then(function (res) {
             //CODE
        });

服务器端:

router.post('/login', (req, res) => {
let userData = req.body.userData;
request.post({
url:'https://www.google.com/recaptcha/api/siteverify', 
form: {
    secret:'6Le4oroZABBXXIQCQkAYCXYSekNQnWExTeNUBZ-B',
    response:userData.repatcha_token
 }},
function(err,httpResponse,body){  
    let myBody =  JSON.parse(body)
    if(!myBody.success){
        return res.status(400).json({
            "message": "Re-captcha failed",
            "success": false
        });
    }

在我的登录中 API 我得到 { success: false, 'error-codes': [ 'invalid-input-secret' ] }

正在从客户端生成令牌,但在服务器端,它没有得到验证。 应该使用什么秘密?

服务器端使用的密钥是否应该与客户端使用的站点密钥相同?或者它们不同?

当您创建 recaptcha 密钥时,您将得到两个部分,一个 站点密钥 和一个 秘密密钥 。在客户端使用site key,在服务端验证时需要提供秘钥。看起来你在这两个地方使用了相同的密钥,但我无法通过查看它是你的网站还是秘密密钥来判断。