javascript - Node.js 上的 ReCaptcha 验证

标签 javascript node.js recaptcha

在我的 Express 服务器上,g-recaptcha-response 始终不返回任何内容。这是我目前的代码:

    <div class=container-fluid id=mcenter>
    <form id='monitstart' action="/monitstart" method="POST">
    <input type="text" class="form-control" aria-label="..." name=>
    <button class="g-recaptcha" data-sitekey="SITEKEYHERE" data-callback="onSubmit"></button>
    </form>
</div>

在我的服务器上

var express = require('express')
var router = express.Router()

var request = require('request')

router.post('/monitstart', function (req, res) {
request({url: "https://www.google.com/recaptcha/api/siteverify?secret=SECRETHERE&response=" + req.body['g-recaptcha-response']} + '&remoteip=' + req.connection.remoteAddress, function (err, response, body) {
    req.send(body)
})

})

module.exports = router

当我尝试验证它时,它给我一个代码 500 并显示 TypeError: Cannot read property 'g-recaptcha-response' of undefined

最佳答案

OP在下面的简短讨论中接​​受的正确答案涉及将主体解析中间件(body-parser)添加到管道中,以便在从那里读取值之前正确初始化请求对象的body属性。

关于javascript - Node.js 上的 ReCaptcha 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020513/

相关文章:

javascript - 无法修复 post 请求中的 CORS

javascript - 正则表达式

javascript - 如何从 Java 编译并运行 Typescript?

javascript - 对具有相同字符串的一个字符和数字以及日期逻辑进行排序

python - Django-registration and ReCaptcha integration - 如何传递用户的IP

python - 如何使用网络抓取工具提前解决 reCaptcha?

javascript - 未捕获的安全错误 : Blocked a frame with origin "https://www.google.com" from accessing a frame with origin "http://my.site.com".

javascript - 向一个特定的 li 元素添加一个类

javascript - 把它变成一个 Javascript 闭包

node.js - 测试 jsonwebtoken 身份验证 express 中间件