Maison > interface Web > js tutoriel > Comment utiliser JavaScript pour implémenter la fonction de code de vérification d'image ?

Comment utiliser JavaScript pour implémenter la fonction de code de vérification d'image ?

王林
Libérer: 2023-10-20 11:54:16
original
1100 Les gens l'ont consulté

如何使用 JavaScript 实现图片验证码功能?

Comment utiliser JavaScript pour implémenter la fonction de code de vérification d'image ?

Avec le développement continu de la technologie réseau, la sécurité des sites Web est devenue de plus en plus importante. Dans des opérations telles que l'enregistrement et la connexion, des codes de vérification graphiques sont souvent utilisés pour garantir le fonctionnement normal des utilisateurs et empêcher l'accès de robots ou de programmes malveillants. Le code de vérification graphique est une méthode de vérification qui affiche une image de code de vérification générée de manière aléatoire et demande à l'utilisateur de saisir le code de vérification correct pour terminer l'opération.

Cet article expliquera comment utiliser JavaScript pour implémenter la fonction de code de vérification d'image et fournira des exemples de code spécifiques.

  1. Préparation

Avant de commencer à écrire du code, nous devons préparer les éléments suivants :

  • Une image de code de vérification contenant divers caractères
  • API côté serveur, utilisée pour vérifier si le code de vérification saisi par l'utilisateur est correct
  1. Structure HTML

Tout d'abord, nous devons ajouter une balise <img> pour afficher le code de vérification et une zone de texte pour saisir le code de vérification dans le fichier HTML. <img> 标签以及一个输入验证码的文本框。

<!DOCTYPE html>
<html>
<head>
  <title>图片验证码示例</title>
</head>
<body>
  <img id="captchaImage" src="captcha.jpg" alt="验证码">
  <input type="text" id="captchaInput" placeholder="请输入验证码">
  <button id="verifyButton">验证</button>

  <script src="captcha.js"></script>
</body>
</html>
Copier après la connexion
  1. JavaScript 代码

接下来,让我们来编写 JavaScript 代码,实现验证码的生成和校验功能。

// 获取页面元素
const captchaImg = document.getElementById('captchaImage');
const captchaInput = document.getElementById('captchaInput');
const verifyButton = document.getElementById('verifyButton');

// 点击验证码图片刷新验证码
captchaImg.addEventListener('click', function() {
  refreshCaptcha();
});

// 点击验证按钮进行验证码校验
verifyButton.addEventListener('click', function() {
  verifyCaptcha();
});

// 刷新验证码
function refreshCaptcha() {
  // 使用服务器端 API 获取新的验证码图片
  // 并更新验证码图片的 src 属性
  captchaImg.src = 'new_captcha.jpg';
}

// 校验验证码
function verifyCaptcha() {
  const userInput = captchaInput.value;

  // 使用服务器端 API 验证用户输入的验证码是否正确
  fetch('/verify-captcha', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ captcha: userInput })
  })
  .then(response => response.json())
  .then(data => {
    if (data.result === 'success') {
      alert('验证码正确');
    } else {
      alert('验证码错误');
    }
  })
  .catch(error => {
    console.error('验证码校验失败', error);
  });
}
Copier après la connexion

在上述代码中,我们使用了 fetch 函数来发送异步请求,使用服务器端提供的 API 进行验证码的校验。根据服务器端返回的校验结果,我们可以弹出相应的提示框。

请确保将 <script src="captcha.js"></script> 放在 HTML 文件的末尾,以确保 JavaScript 代码在页面加载完毕后执行。

  1. 服务器端实现

服务器端的实现方式因语言和框架的不同而有所差异。一般情况下,服务器端会提供一个 API 接口,接收用户输入的验证码并进行验证,返回校验结果。

以下是一个简单的 Node.js 服务器端示例代码:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

// 解析 application/json
app.use(bodyParser.json());

// 校验验证码
app.post('/verify-captcha', (req, res) => {
  const userInput = req.body.captcha;

  // 进行验证码校验
  if (userInput === 'correct_code') {
    res.json({ result: 'success' });
  } else {
    res.json({ result: 'failure' });
  }
});

const port = 3000;
app.listen(port, () => {
  console.log(`服务器运行在 http://localhost:${port}`);
});
Copier après la connexion

以上代码中的 /verify-captcharrreee

    Code JavaScript
    1. Ensuite, écrivons du code JavaScript pour implémenter les fonctions de génération et de vérification du code de vérification.
    rrreee

    Dans le code ci-dessus, nous utilisons la fonction fetch pour envoyer une requête asynchrone et utilisons l'API fournie par le serveur pour vérifier le code de vérification. Selon les résultats de vérification renvoyés par le serveur, nous pouvons afficher la boîte de dialogue correspondante.

    Veuillez vous assurer de placer <script src="captcha.js"></script> à la fin du fichier HTML pour garantir que le code JavaScript est exécuté une fois la page créée. chargé.

      🎜Implémentation côté serveur🎜🎜🎜L'implémentation côté serveur varie en fonction du langage et du framework. Généralement, le serveur fournira une interface API pour recevoir le code de vérification saisi par l'utilisateur, le vérifier et renvoyer le résultat de la vérification. 🎜🎜Ce qui suit est un exemple de code simple côté serveur Node.js : 🎜rrreee🎜Le chemin /verify-captcha dans le code ci-dessus correspond à l'interface de vérification dans le code frontal, qui peut être modifié en fonction de la situation réelle. 🎜🎜🎜Résumé🎜🎜🎜Cet article implémente une fonction simple de code de vérification d'image grâce à la coopération de JavaScript et du côté serveur, y compris l'actualisation du code de vérification et la vérification de la saisie de l'utilisateur. Vous pouvez modifier et étendre le code en fonction des besoins réels pour améliorer la sécurité et la convivialité du code de vérification. 🎜🎜Enfin, il convient de noter que le code de vérification n'est qu'une simple méthode de vérification et ne peut pas empêcher complètement l'accès des robots et des programmes malveillants. Dans des applications pratiques, nous pouvons également combiner d'autres stratégies de sécurité, telles que les restrictions IP, l'analyse du comportement des utilisateurs, etc., pour améliorer la sécurité du site Web. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal