我如何在adonis js上验证令牌google recaptcha 3?

问题描述 投票:0回答:1

我使用vue作为前端。我这样从前端发送令牌:

let payload = {
    token: tokenCaptcha
}

axios.post(`http://127.0.0.1:3333/api/v1/category`, payload)
    .then(response => {
        return response.data
    }).catch(
    error => {
        console.log(error)
    })

该令牌将用于在后端进行验证。我的后端使用adonis.js

这样的控制器脚本:

'use strict'
class CategoryController {
  async store ({ request, response }) {
    return request.input('token')
  }
}
module.exports = CategoryController

我的路线是这样的:

Route.group(()=>{
  Route.post('category', 'CategoryController.store')
}).prefix('api/v1')

如何验证adonis.js(后端)上的令牌?

我有搜索参考。但我找不到]

vue.js vue-component recaptcha adonis.js
1个回答
0
投票

您需要使用axios。类似于:

const axios = use('axios')
const Env = use('Env')
const querystring = use('querystring')

try {
      const data_request = await axios.post('https://www.google.com/recaptcha/api/siteverify', querystring.stringify({ secret: Env.get('RECAPTCHA_PRIVATE_KEY'), response: data['g-recaptcha-response'] }))
      if (!data_request.data.success) {
        //If the recaptcha check fails
        ...
      }
    } catch (error) {
      ...
    }
}

Google documentation - Verifying the user's response

此代码适用于v2。但是验证是相同的:https://developers.google.com/recaptcha/docs/v3#site_verify_response

© www.soinside.com 2019 - 2024. All rights reserved.