Sim*_*son 6 javascript recaptcha node.js
在向 google recaptcha api 发出发布请求时,我真的很难获得成功的响应。我收到以下回复:
{
"success": false,
"error-codes": [
"invalid-input-response",
"invalid-input-secret"
]
}
Run Code Online (Sandbox Code Playgroud)
我查看了reCAPTCHA - error-codes: 'missing-input-response', 'missing-input-secret' 在验证用户的响应时(缺少 POST 的详细信息),并尽可能密切地遵循答案,但没有成功。
这是我的文件如下:
var request = require('request');
module.exports = {
verifyCaptcha: function(req, res) {
var secret = 'SECRET_KEY';
var response = JSON.stringify(req.body.response);
request({
url: 'https://www.google.com/recaptcha/api/siteverify',
method: 'POST',
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: `secret=${secret}&response=${response}`,
}, function (err, response, body) {
if (err) {
res.status(500).send({
error: "Could not verify captcha"
});
} else {
res.status(200).send({
message: body
});
}
});
},
}
Run Code Online (Sandbox Code Playgroud)
如果有人有解决此问题的方法,请告诉我!
小智 5
由于文档: https: //developers.google.com/recaptcha/docs/verify
invalid-input-secret: 秘密参数无效或格式错误。 也许您混合了 site_key 和 Secret_key。
您需要添加用户远程IP地址。
var user_ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
request({
url: 'https://www.google.com/recaptcha/api/siteverify',
method: 'POST',
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: `secret=${secret}&response=${response}&remoteip=${user_ip}`}...
Run Code Online (Sandbox Code Playgroud)
我发现您没有使用模板文字的另一件事是,您应该将引号更改为“而不是”。
或者,您应该使用现成的 reCaptcha 模块,如下所示:
https://www.npmjs.com/package/recaptcha
| 归档时间: |
|
| 查看次数: |
9505 次 |
| 最近记录: |