人机验证问题库

当然可以。下面是一个生成问题库的示例,其中包括多种类型的问题和选项,以便用来进行人机验证。

问题库示例

const questions = [
  {
    question: '请选择所有水果',
    options: [
      { id: 1, text: '苹果', isCorrect: true },
      { id: 2, text: '香蕉', isCorrect: true },
      { id: 3, text: '汽车', isCorrect: false },
      { id: 4, text: '猫', isCorrect: false },
      { id: 5, text: '草莓', isCorrect: true },
      { id: 6, text: '大象', isCorrect: false },
    ]
  },
  {
    question: '请选择所有动物',
    options: [
      { id: 1, text: '苹果', isCorrect: false },
      { id: 2, text: '香蕉', isCorrect: false },
      { id: 3, text: '汽车', isCorrect: false },
      { id: 4, text: '猫', isCorrect: true },
      { id: 5, text: '草莓', isCorrect: false },
      { id: 6, text: '大象', isCorrect: true },
    ]
  },
  {
    question: '请选择所有交通工具',
    options: [
      { id: 1, text: '苹果', isCorrect: false },
      { id: 2, text: '香蕉', isCorrect: false },
      { id: 3, text: '汽车', isCorrect: true },
      { id: 4, text: '猫', isCorrect: false },
      { id: 5, text: '草莓', isCorrect: false },
      { id: 6, text: '自行车', isCorrect: true },
    ]
  },
  {
    question: '请选择所有蔬菜',
    options: [
      { id: 1, text: '西红柿', isCorrect: true },
      { id: 2, text: '香蕉', isCorrect: false },
      { id: 3, text: '土豆', isCorrect: true },
      { id: 4, text: '猫', isCorrect: false },
      { id: 5, text: '草莓', isCorrect: false },
      { id: 6, text: '胡萝卜', isCorrect: true },
    ]
  },
  {
    question: '请选择所有颜色',
    options: [
      { id: 1, text: '红色', isCorrect: true },
      { id: 2, text: '香蕉', isCorrect: false },
      { id: 3, text: '蓝色', isCorrect: true },
      { id: 4, text: '猫', isCorrect: false },
      { id: 5, text: '绿色', isCorrect: true },
      { id: 6, text: '大象', isCorrect: false },
    ]
  },
  {
    question: '请选择所有家用电器',
    options: [
      { id: 1, text: '电视', isCorrect: true },
      { id: 2, text: '冰箱', isCorrect: true },
      { id: 3, text: '汽车', isCorrect: false },
      { id: 4, text: '洗衣机', isCorrect: true },
      { id: 5, text: '草莓', isCorrect: false },
      { id: 6, text: '手机', isCorrect: true },
    ]
  }
];

module.exports = questions;

说明

  • 每个问题都有一个 question 字段,表示问题的文本内容。
  • 每个问题都有一个 options 字段,表示选项的数组,每个选项包含一个 idtextisCorrect 字段。
    • id 是选项的唯一标识符。
    • text 是选项的文本内容。
    • isCorrect 是一个布尔值,表示该选项是否是正确答案。

如何使用

你可以将问题库保存为一个 JavaScript 文件(例如 questions.js),然后在你的 Express 应用中引用和使用:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
const questions = require('./questions'); // 引入问题库

app.use(bodyParser.json());

app.get('/captcha-question', (req, res) => {
  const randomIndex = Math.floor(Math.random() * questions.length);
  res.json(questions[randomIndex]);
});

app.post('/verify-captcha', (req, res) => {
  const { question, selectedOptions } = req.body;

  const correctQuestion = questions.find(q => q.question === question);

  if (!correctQuestion) {
    return res.status(400).json({ success: false, message: '无效的问题' });
  }

  const correctOptions = correctQuestion.options.filter(option => option.isCorrect).map(option => option.text);

  if (selectedOptions.length !== correctOptions.length) {
    return res.json({ success: false, message: '验证失败' });
  }

  const isCorrect = selectedOptions.every(option => correctOptions.includes(option));

  if (isCorrect) {
    res.json({ success: true });
  } else {
    res.json({ success: false, message: '验证失败' });
  }
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

这样,你就可以在你的 Express 应用中动态生成问题,并进行后端验证。

相关推荐

  1. 人机验证问题

    2024-06-07 06:34:01       28 阅读
  2. Openresty人机验证流程

    2024-06-07 06:34:01       25 阅读
  3. react使用谷歌人机验证

    2024-06-07 06:34:01       23 阅读
  4. el-form验证问题

    2024-06-07 06:34:01       52 阅读
  5. TP6场景验证问题

    2024-06-07 06:34:01       54 阅读
  6. 通过nginx弄一个滑块加图片的人机验证

    2024-06-07 06:34:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 06:34:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 06:34:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 06:34:01       82 阅读
  4. Python语言-面向对象

    2024-06-07 06:34:01       91 阅读

热门阅读

  1. Pytorch语义分割(2)--------模型搭建

    2024-06-07 06:34:01       32 阅读
  2. ChatGPT-3

    2024-06-07 06:34:01       31 阅读
  3. QT之全局忽略编译警告QMAKE_CXXFLAGS

    2024-06-07 06:34:01       30 阅读
  4. Ubuntu禁止内核自动更新

    2024-06-07 06:34:01       24 阅读
  5. nginx如何编译安装?

    2024-06-07 06:34:01       28 阅读
  6. 【Android】点击图片获取点击位置在图片中的位置

    2024-06-07 06:34:01       30 阅读
  7. electron录制工具-准备录制mask

    2024-06-07 06:34:01       27 阅读
  8. 一些关于科技的想法

    2024-06-07 06:34:01       33 阅读
  9. 使用docker直接运行不同版本nodejs命令

    2024-06-07 06:34:01       36 阅读
  10. Centos7安装Docker和DockerCompose

    2024-06-07 06:34:01       30 阅读