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,在服务端验证时需要提供秘钥。看起来你在这两个地方使用了相同的密钥,但我无法通过查看它是你的网站还是秘密密钥来判断。
客户端:
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,在服务端验证时需要提供秘钥。看起来你在这两个地方使用了相同的密钥,但我无法通过查看它是你的网站还是秘密密钥来判断。