Maison  >  Article  >  Java  >  Comment utiliser Java pour obtenir le code de vérification de connexion au site Web

Comment utiliser Java pour obtenir le code de vérification de connexion au site Web

PHPz
PHPzavant
2023-05-10 18:28:061557parcourir

Génération de code de vérification

Cet effet est obtenu à l'aide de la boîte à outils easy-captcha. Tout d'abord, vous devez ajouter les dépendances pertinentes à pom.xml. Le code est le suivant :

<dependency>
    <groupId>com.github.whvcse</groupId>
    <artifactId>easy-captcha</artifactId>
    <version>1.6.2</version>
</dependency>
.

Format du code de vérification

L'outil de code de vérification easy-captcha prend en charge les types GIF, chinois, arithmétique et autres, qui sont implémentés via les objets d'instance suivants :

    #🎜 🎜#
  • SpecCaptcha (code de vérification d'image statique de type PNG)

  • GifCaptcha (code de vérification d'image de type Gif)

    #🎜🎜 ##🎜🎜 #ChineseCaptcha (code de vérification d'image chinois de type GIF)
  • ArithmeticCaptcha (code de vérification d'image de type arithmétique)
  • #🎜🎜 #Les types de caractères sont répartis dans les types suivants :

TYPE_DEFAULT : chiffres et lettres mixtes

  • #🎜🎜 #TYPEONLYNUMBER : Chiffres purs

  • TYPEONLYCHAR : Lettres pures

  • TYPEONLYUPPER : Lettres majuscules pures

  • TYPEONLYLOWER : lettres minuscules pures

  • TYPENUMAND_UPPER : chiffres mixtes et lettres majuscules

    #🎜 🎜##🎜 🎜#Implémentation de la logique back-end
  • package com.yanx.controller;
     
    import com.wf.captcha.SpecCaptcha;
    import com.wf.captcha.base.Captcha;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.thymeleaf.util.StringUtils;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
     
    @Controller
    public class KapchaController {
        @GetMapping("/kaptcha")
        public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
            httpServletResponse.setHeader("Cache-Control","no-store");
            httpServletResponse.setHeader("Pragma","no-cache");
            httpServletResponse.setDateHeader("Expires",0);
            httpServletResponse.setContentType("image/gif");
     
            //三个参数分别为宽、高、位数
            SpecCaptcha captcha=new SpecCaptcha(75,30,4);
     
            //设置类型为数字和字母混合
            captcha.setCharType(Captcha.TYPE_DEFAULT);
     
            //设置字体
            captcha.setCharType(Captcha.FONT_9);
     
            //验证码存入session
            httpServletRequest.getSession().setAttribute("verifyCode",captcha.text().toLowerCase());
     
            //输出图片流
            captcha.out(httpServletResponse.getOutputStream());
        }
     
    }
  • Le contrôleur ajoute ici la méthode defaultKaptcha(), et le chemin intercepté et traité par cette méthode est

    # 🎜🎜#Front-end logic Implémenter
Créez une nouvelle page kaptcha.html dans le répertoire statique, le code est le suivant :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码</title>
</head>
<body>
 <img  src="/kaptcha" onclick="this.src=&#39;/kaptcha?t=new Date()&#39;" alt="Comment utiliser Java pour obtenir le code de vérification de connexion au site Web" >
</body>
</html>

Accès au chemin du code de vérification backend/ kaptcha, le code de vérification se présente sous la forme d'une image. La méthode onclick peut basculer dynamiquement pour afficher le code de vérification lorsque l'on clique sur l'étiquette.

/kaptchaDémarrez le projet Spring Boot, ouvrez le navigateur et saisissez l'adresse :

http://localhost:8080/kaptcha.html

The l'effet est le suivant :# 🎜🎜#

Vérification CAPTCHA

Code backend

package com.yanx.controller;
 
import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.base.Captcha;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.util.StringUtils;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
 
@Controller
public class KapchaController {
    @GetMapping("/kaptcha")
    public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
        httpServletResponse.setHeader("Cache-Control","no-store");
        httpServletResponse.setHeader("Pragma","no-cache");
        httpServletResponse.setDateHeader("Expires",0);
        httpServletResponse.setContentType("image/gif");
 
        //三个参数分别为宽、高、位数
        SpecCaptcha captcha=new SpecCaptcha(75,30,4);
 
        //设置类型为数字和字母混合
        captcha.setCharType(Captcha.TYPE_DEFAULT);
 
        //设置字体
        captcha.setCharType(Captcha.FONT_9);
 
        //验证码存入session
        httpServletRequest.getSession().setAttribute("verifyCode",captcha.text().toLowerCase());
 
        //输出图片流
        captcha.out(httpServletResponse.getOutputStream());
    }
 
    @GetMapping("/verify")
    @ResponseBody
    public String verify(@RequestParam("code") String code, HttpSession session){
        if(StringUtils.isEmpty(code)){
            return "验证码不能为空";
        }
        String kapchaCode = session.getAttribute("verifyCode")+"";
        if(StringUtils.isEmpty(kapchaCode)||!code.toLowerCase().equals(kapchaCode)){
            return "验证码输入错误";
        }
        return "验证成功";
    }
}

Code frontend#🎜 🎜#

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码验证</title>
</head>
<body>
 
<img  src="/kaptcha" onclick="this.src=&#39;/kaptcha?d=new Date()&#39;" alt="Comment utiliser Java pour obtenir le code de vérification de connexion au site Web" >
 


<input type="text" maxlength="5" id="code" placeholder="请输入验证码"/>
<button id="verify">验证</button>


<p id="verifyResult"></p>
 
</body>
 
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" >
  $(function(){
  //验证按钮点击事件
   $(&#39;#verify&#39;).click(function(){
    var code=$(&#39;#code&#39;).val();
    $.ajax({
      type:&#39;GET&#39;,//方法类型
      url:&#39;/verify?code=&#39;+code,
      success:function(result){
        $(&#39;#verifyResult&#39;).html(result);
      },
      error:function(){
        alert(&#39;请求失败&#39;);
      },
    });
   });
  });
</script>
</html>
# 🎜🎜#effect

Comment utiliser Java pour obtenir le code de vérification de connexion au 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer