Este ejemplo comparte el código específico para el código de verificación SpringBoot inicio de sesión para su referencia. El contenido específico es el siguiente
Debido a que se necesitan códigos de verificación en el proyecto, resumiré cómo resolver rápidamente los requisitos del proyecto en el código de verificación del proyecto. El siguiente es un ejemplo recomendado de códigos de verificación para que todos comiencen.
1. Escribir herramientas de código de verificación
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.Random;import javax.imageio.ImageIO;/** * @Author ZCT * @Date 6 de febrero de 2018 * @param * @Desc Generación de código de verificación gráfica * */public class VerifyUtil {// Código de verificación Conjunto de caracteres privado Estático final Char [] chars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', ',', ',', ', c', ',', ', c', c ', c', c ', c', c ', c', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', ',', '', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e' 'H', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; // Número de caracteres static static final int size = 4; // Número de líneas de interferencia Private static final int Lines = 5; // Ancho Private Static Final int Ancho = 80; // Altura estática privada estática int altava = 40; // Tamaño de fuente estática privada final int font_size = 30; /*** Generar código de verificación aleatorio e imagen* objeto [0]: cadena de código de verificación; * Objeto [1]: imagen del código de verificación. */ public static object [] createImage () {StringBuffer sb = new StringBuffer (); // 1. Cree una imagen en blanco BufferedImage Image = New BufferedImage (ancho, altura, bufferedimage.type_int_rgb); // 2. Obtenga el gráfico de pincel de imagen gráfico = image.getgraphics (); // 3. Establezca el color gráfico de color de pincel.setColor (color.light_gray); // 4. Dibuja los gráficos de fondo del rectángulo. Fillrect (0, 0, ancho, altura); // 5. Dibuje caracteres aleatorios Rand Ran = new Random (); for (int i = 0; i <size; i ++) {// Tome el índice de caracteres aleatorio int n = ran.nextint (chars.length); // establecer el color gráfico aleatorio.setColor (getRandomColor ()); // Establecer el tamaño de fuente Graphic.SetFont (nuevo Font (NULL, FONT.BOLD + FONT.ITALIC, FONT_SIZE)); // dibujar caracteres gráfico.drawstring (chars [n] + "", i * ancho/ tamaño, altura * 2/3); // registrar los caracteres sb.append (chars [n]); } // 6. Dibuja la línea de interferencia para (int i = 0; i <líneas; i ++) {// establece color al azar gráfico.setColor (getRandomColor ()); // Color aleatorio Graphic.Drawline (ran.nextint (ancho), ran.nextint (altura), ran.nextint (ancho), ran.nextint (altura)); } // 7. Código de verificación de retorno e imagen return New Object [] {sb.ToString (), imagen}; } / *** Color aleatorio* / public static Color getRandomColor () {Random ran = new Random (); Color color = nuevo color (ran.nextint (256), ran.nextint (256), ran.nextint (256)); color de retorno; }}2. Use la capa del controlador
Verifique que el nombre de usuario y la contraseña sean consistentes con el código de verificación
/*** Portal de inicio de sesión** @param UserName Nombre de usuario* @param contraseña contraseña* @Param Código Código de verificación* @Param La devolución de llamada JSON Data devuelve con éxito 200, y el retorno fallido 500*/@Apioperation ("Login") @PostMapping ("/Login") public Void AdminLoginByPassWword (@apiparam ("Username") @Apiparam ("contraseña") @RequestParam String Password, @apiparam ("Código de verificación") @RequestParam String Code, HttpServletResponse Respuesta, solicitud httpservletrequest) {session httpsession = request.getSession (); if (session.getAttribute ("imageCode") == null) {renderfail (respuesta, "código de verificación reget"); } else {if (session.getAttribute ("imageCode"). toString (). EqualSignReCase (Code)) {MAP <String, Object> User = AdminService.CheckAdminlogin (UserName, Password); if (user == null) {renderfail (respuesta, "inicio de sesión fallido"); } else {renderSuccess (respuesta, "Iniciar sesión"); }} else {renderFail (respuesta, "error de código de verificación"); }}}Aquí, la solicitud GET se utiliza para obtener el código de verificación. La interfaz para obtener el código de verificación es el siguiente
@Apioperation ("Generar código de verificación") @getmapping ("/getCode") public void getCode (httpservletResponse respuesta, solicitud httpservletrequest) lanza la excepción {httpsession session = request.getSession (); // Use herramientas de imagen para generar imágenes // El primer parámetro es el código de verificación generado, y el segundo parámetro es el objeto de imagen generado [] objs = verifyUtil.createImage (); // almacenar el código de verificación en la sesión Session.SetAttribute ("ImageCode", OBJS [0]); // emite la imagen al navegador BufferedImage Image = (BufferedImage) OBJS [1]; respuesta.setContentType ("Imagen/PNG"); OutputStream OS = Response.getOutputStream (); Imageio.write (imagen, "png", os); }3. Prueba de código
Aquí hay una prueba usando springboot swagger2
Lo anterior es la solicitud GET para obtener el código de verificación, lo siguiente es la verificación de inicio de sesión, el resultado de verificación es exitoso.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.