首页 > 解决方案 > Recaptcha 错误“意外令牌” - Firebase 云功能

问题描述

const functions = require('firebase-functions');
const express = require('express')
const request = require('request')
const bodyParser = require('body-parser')

const app = express()

app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())

app.post('/reserver', (req, res) => {
  if(req.body.captcha === undefined || req.body.captcha === '' || req.body.captcha === null) {
    return res.json({"success": false, "msg": "Bekræft venligst captcha"})
  }

  const secretKey = 'SECRET-KEY'
  const verifyURL = `https://www.google.com/recaptcha/api/siteverify?secret=${secretKey}&response=${req.body.captcha}`

  request(verifyURL, (err, response, body) => {
    body = JSON.parse(body)

    if(body.success != undefined && !body.success) {
        return res.json({"success": false, "msg": "Failed captcha verify"})
    }
    return res.json({"success": true, "msg": "Godkendt captcha"})
  })
})

exports.app = functions.https.onRequest(app)

我正在尝试将 recaptcha 集成到我的网站上。我使用 firebase Cloud 功能来验证验证码。“app”函数的第一部分,即 if 语句,运行良好。但是当我完成recaptcha,因此继续请求(verifyURL,(err,response,body)时,它给了我2个错误。“POST 500”和“Uncaught (in promise) SyntaxError: Unexpected token E in JSON at position 0 ”。任何帮助表示赞赏。

标签: javascriptfirebaseexpressgoogle-cloud-functionsrecaptcha

解决方案


推荐阅读