easy-captcha生成驗證碼

引入依賴
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>3.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.whvcse/easy-captcha -->
<dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version>
</dependency>
編寫相應前端實體vo
package com.orchids.springmybatisplus.model.entity;import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;@Data
@Schema(description = "圖像驗證碼")
@AllArgsConstructor
public class CaptchaVo {@Schema(description="驗證碼圖片信息")private String image;@Schema(description="驗證碼key")private String key;
}
生成驗證碼
  1. controller
@Controller
public class LoginController {@Autowiredprivate LoginService loginService;@Operation(summary = "獲取圖形驗證碼")@GetMapping("login/captcha")public Result<CaptchaVo> getCaptcha() {CaptchaVo captcha = loginService.getCaptcha();return Result.ok(captcha);}
}
  1. serviceimpl

@Service
public class LoginServiceImpl implements LoginService {@Autowiredprivate StringRedisTemplate redisTemplate;@Overridepublic CaptchaVo getCaptcha() {SpecCaptcha specCaptcha = new SpecCaptcha(100, 40, 4);String code = specCaptcha.text().toLowerCase();String key = RedisConstant.ADMIN_LOGIN_PREFIX + UUID.randomUUID();String image = specCaptcha.toBase64();redisTemplate.opsForValue().set(key,code,60, TimeUnit.SECONDS);return new CaptchaVo(image, key);}
}
因為需要使用redis所以 需要在yml中配置redis
spring:data:redis:host: localhostport: 6379database: 0
測試

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21221.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21221.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21221.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[力扣題解] 404. 左葉子之和

題目&#xff1a;404. 左葉子之和 思路 前序遍歷&#xff08;隨便怎么遍歷&#xff09;&#xff1b; 在遇到左葉子時處理數據&#xff0c;選擇中、左、右里面的左的時候再判斷這個節點是不是葉子&#xff1b; 代碼 /*** Definition for a binary tree node.* struct TreeNo…

Unity2D游戲開發-玩家控制

在Unity2D游戲開發中&#xff0c;玩家控制是游戲互動性的核心。本文將解析一個典型的Unity2D玩家控制腳本&#xff0c;探討如何實現流暢的玩家移動、跳躍和動畫切換。以下是一個Unity腳本示例&#xff0c;實現了這些基礎功能。 1. 腳本結構 using System.Collections; using …

機械設計手冊第一冊:公差

形位公差的標注&#xff1a; 形位公差框格中&#xff0c;不僅要表達形位公差的特征項目、基準代號和其他符號&#xff0c;還要正確給出公差帶的大小、形狀等內容。 1.形位公差框格&#xff1a; 形位公差框格由兩個框格或多個格框組成&#xff0c;框格中的主要內容從左到右按…

(2024,擴散,去噪調度,維度,誤差,收斂速度)適應基于分數的擴散模型中的未知低維結構

Adapting to Unknown Low-Dimensional Structures in Score-Based Diffusion Models 公和眾和號&#xff1a;EDPJ&#xff08;進 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 進 V 交流群&#xff09; 目錄 0. 摘要 1. 引言 1.1 擴散模型 1.2 現有結果的不…

服務器硬件基礎知識學習

服務器硬件基礎知識涵蓋了從CPU到存儲&#xff0c;再到網絡連接和總線技術等關鍵組件。 1. 處理器 - 兩大流派&#xff1a;我們常用的處理器主要分為Intel和AMD兩大陣營。Intel的Xeon系列和AMD的EPYC系列都是專為服務器設計的&#xff0c;它們支持多核處理&#xff0c;能夠應對…

語言模型的校準技術:增強概率評估

? 使用 DALLE-3 模型生成的圖像 目錄 一、說明 二、為什么校準對 LLM 模型至關重要 三、校準 LLM 概率的挑戰 四、LLM 的高級校準方法 4.1 語言置信度 4.2 增強語言自信的先進技術 4.3 基于自一致性的置信度 4.4 基于 Logit 的方法 五、代理模型或微調方法 5.1 使用代…

集成算法實驗與分析(軟投票與硬投票)

概述 目的&#xff1a;讓機器學習效果更好&#xff0c;單個不行&#xff0c;集成多個 集成算法 Bagging&#xff1a;訓練多個分類器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1M?fm?(x) Boosting&#xff1a;從弱學習器開始加強&am…

排序-插入排序與選擇排序

插入排序 基本思想 把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經排好序的有序序列中&#xff0c;直到所有的記錄插入完為止&#xff0c;得到一個新的有序序列 。 打撲克牌整理手牌用的就是插入排序的思想 代碼實現 void InsertSort(int* a, int n) { assert(a); …

C語言自定義類型

在C語言中&#xff0c;自定義類型可以通過typedef關鍵字來實現。typedef用于為現有的數據類型創建新的名稱&#xff08;別名&#xff09;&#xff0c;使代碼更清晰易讀。自定義類型的一個常見用途是簡化復雜的類型聲明&#xff0c;特別是在使用結構體、枚舉和函數指針時。 使用…

52、有邊數限制的最短路

有邊數限制的最短路 題目描述 給定一個n個點m條邊的有向圖&#xff0c;圖中可能存在重邊和自環&#xff0c; 邊權可能為負數。 請你求出從1號點到n號點的最多經過k條邊的最短距離&#xff0c;如果無法從1號點走到n號點&#xff0c;輸出impossible。 注意&#xff1a;圖中可…

查看 WSL2 (Windows Subsystem for Linux 2) IP 地址

查看 WSL2 [Windows Subsystem for Linux 2] IP 地址 1. ipconfig2. ping $(hostname).local3. cat /etc/resolv.conf4. ip route show5. ip addrReferences 1. ipconfig Windows 系統上與 WSL2 (Windows Subsystem for Linux 2) 接口的地址 172.31.32.1。 Microsoft Windows…

米爾MYC-Y6ULX-V2開發板測評記錄

文章目錄 1、板子上手體驗2、板載硬件3、系統信息4、 驅動測試5、編譯linux三大件7、攝像頭測試9、總結 1、板子上手體驗 首先非常感謝芯查查給了這樣一個機會來測評這樣一款性能十分強大的開發板&#xff0c;我拿到手的是MYC-Y6ULX-V2核心板及開發板&#xff0c;這塊板子具有…

STM32HAL-最簡單的長、短、多擊按鍵框架

目錄 概述 一、開發環境 二、STM32CubeMx配置 三、編碼 四、運行結果 五、總結 概述 本文章使用最簡單的寫法實現長、短、多擊按鍵框架&#xff0c;非常適合移植各類型單片機&#xff0c;特別是資源少的芯片上。接下來將在stm32單片機上實現&#xff0c;只需占用1個定時…

動態控制eBPF程序加載:檢查 Tracepoint、Kprobe是否存在

前言 在 eBPF 程序開發中&#xff0c;確保程序能夠在各種不同的系統配置中兼容運行是至關重要的。本文將詳細介紹一個方案&#xff0c;通過動態檢查Tracepoint、Kprobe是否存在&#xff0c;并結合libbpf的API接口控制 eBPF 程序的加載。這種方法不僅可以提升程序的靈活性&…

jwt 實現用戶登錄完整java

登錄校驗邏輯 用戶登錄的校驗邏輯分為三個主要步驟&#xff0c;分別是校驗驗證碼&#xff0c;校驗用戶狀態和校驗密碼&#xff0c;具體邏輯如下 前端發送username、password、captchaKey、captchaCode請求登錄。判斷captchaCode是否為空&#xff0c;若為空&#xff0c;則直接…

AWS聯網和內容分發服務

概況 VPC Amazon Virtual Private Cloud (Amazon VPC) 讓您能夠全面地控制自己的虛擬網絡環境&#xff0c;包括資源放置、連接性和安全性。首先在 AWS 服務控制臺中設置 VPC。然后&#xff0c;向其中添加資源&#xff0c;例如 Amazon Elastic Compute Cloud (EC2) 和 Amazon …

數據分析必備:一步步教你如何用Pandas做數據分析(15)

1、Pandas 數據丟失 Pandas 數據丟失的操作實例 在現實生活中&#xff0c;數據丟失始終是一個問題。機器學習和數據挖掘等領域在模型預測的準確性方面面臨嚴重問題&#xff0c;因為缺少值會導致數據質量較差。在這些領域中&#xff0c;缺失值處理是使模型更準確和有效的主要重…

定個小目標之每天刷LeetCode熱題(7)

今天這道題是道簡單題&#xff0c;使用雙指針進行迭代即可&#xff0c;畫了下草圖如下 代碼如下 class Solution {public ListNode reverseList(ListNode head) {if (head null || head.next null) {return head;}ListNode p head, q head.next, temp null;while (q ! nu…

【Python如何將EXCEL拆分】

文章目錄 Python將一個EXCEL表拆分多個excel表Python將一個EXCEL表中一個sheet拆分多個sheet表 Python將一個EXCEL表拆分多個excel表 在Python中&#xff0c;你可以使用pandas庫來讀取Excel文件&#xff0c;并將一個大的Excel表格&#xff08;工作表&#xff09;拆分成多個單獨…

Writerside生成在線幫助文檔或用戶手冊軟件基礎使用教程

Writerside是JetBrains出的一個技術文檔工具&#xff0c;既能用在JetBrains IDE上&#xff0c;也能單獨用。它能幫你輕松寫、建、測、發技術文檔&#xff0c;像產品說明、API參考、開發指南等都能搞定。 特點&#xff1a; 文檔即代碼&#xff1a;它讓你像管代碼一樣管文檔&…