最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能

 更新時間:2023年07月02日 14:28:24   作者:Mr順  
這篇文章主要給大家介紹一下如何SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下

SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼

要在Spring Boot和Vue中實(shí)現(xiàn)登錄時的圖片驗(yàn)證碼功能,可以按照以下步驟進(jìn)行操作:
后端(Spring Boot)實(shí)現(xiàn):
添加相關(guān)依賴:在
pom.xml文件中添加以下依賴:

<dependency>
    <groupId>nl.captcha</groupId>
    <artifactId>simplecaptcha</artifactId>
    <version>1.2.2</version>
</dependency>

創(chuàng)建一個驗(yàn)證碼生成器:創(chuàng)建一個CaptchaGenerator類,用于生成驗(yàn)證碼圖片。

import nl.captcha.Captcha;
import nl.captcha.backgrounds.FlatColorBackgroundProducer;
import nl.captcha.gimpy.DropShadowGimpyRenderer;
import nl.captcha.text.producer.DefaultTextProducer;
import nl.captcha.text.renderer.DefaultWordRenderer;
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@Component
public class CaptchaGenerator {
    public byte[] generateCaptchaImage(String captchaText) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        // 創(chuàng)建驗(yàn)證碼圖片對象
        Captcha captcha = new Captcha.Builder(200, 50)
                .addText(new DefaultTextProducer(), new DefaultWordRenderer())
                .gimp(new DropShadowGimpyRenderer())
                .addBackground(new FlatColorBackgroundProducer(Color.WHITE))
                .build();
        try {
            // 將驗(yàn)證碼圖片寫入輸出流
            ImageIO.write(captcha.getImage(), "png", outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return outputStream.toByteArray();
    }
}

創(chuàng)建一個REST API接口:創(chuàng)建一個
CaptchaController類,用于生成驗(yàn)證碼圖片的API接口。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
@RequestMapping("/api/captcha")
public class CaptchaController {
    private final CaptchaGenerator captchaGenerator;
    @Autowired
    public CaptchaController(CaptchaGenerator captchaGenerator) {
        this.captchaGenerator = captchaGenerator;
    }
    @GetMapping
    public void generateCaptcha(HttpServletResponse response) throws IOException {
        // 生成驗(yàn)證碼圖片的方法
        byte[] captchaImage = captchaGenerator.generateCaptchaImage("1234");
        // 設(shè)置響應(yīng)的內(nèi)容類型為圖片
        response.setContentType("image/png");
        // 將驗(yàn)證碼圖片寫入響應(yīng)輸出流
        response.getOutputStream().write(captchaImage);
    }
}

啟動應(yīng)用程序:啟動Spring Boot應(yīng)用程序,確保REST API接口可用。
前端(Vue)實(shí)現(xiàn):
創(chuàng)建一個驗(yàn)證碼組件:創(chuàng)建一個Captcha.vue組件,用于顯示驗(yàn)證碼圖片。

<template>
  <div>
    <!-- 顯示驗(yàn)證碼圖片,點(diǎn)擊圖片刷新驗(yàn)證碼 -->
    <img :src="captchaImage" alt="Captcha" @click="refreshCaptcha" />
  </div>
</template>
<script>
export default {
  data() {
    return {
      captchaImage: "" // 驗(yàn)證碼圖片的URL
    };
  },
  mounted() {
    this.refreshCaptcha(); // 組件掛載時刷新驗(yàn)證碼
  },
  methods: {
    refreshCaptcha() {
      this.captchaImage = `/api/captcha?t=${Date.now()}`; // 刷新驗(yàn)證碼圖片的URL,添加時間戳以避免緩存
    }
  }
};
</script>
<style scoped>
img {
  cursor: pointer; // 設(shè)置鼠標(biāo)指針樣式為手型
}
</style>

在登錄頁面使用驗(yàn)證碼組件:在你的登錄頁面的代碼中,使用Captcha組件來顯示驗(yàn)證碼圖片,并在表單中添加一個輸入框用于用戶輸入驗(yàn)證碼。

<template>
  <div>
    <h1>Login Page</h1>
    <form @submit="submitForm">
      <input type="text" v-model="username" placeholder="Username" />
      <input type="password" v-model="password" placeholder="Password" />
      <!-- 顯示驗(yàn)證碼圖片,并添加點(diǎn)擊事件刷新驗(yàn)證碼 -->
      <input type="text" v-model="captcha" placeholder="Captcha" />
      <captcha></captcha>
      <button type="submit">Login</button>
    </form>
  </div>
</template>
<script>
import Captcha from "@/components/Captcha.vue";
export default {
  data() {
    return {
      username: "",
      password: "",
      captcha: ""
    };
  },
  methods: {
    submitForm() {
      // 在此處進(jìn)行登錄驗(yàn)證和驗(yàn)證碼驗(yàn)證的邏輯
      console.log("Username:", this.username);
      console.log("Password:", this.password);
      console.log("Captcha:", this.captcha);
    }
  },
  components: {
    Captcha
  }
};
</script>

這樣,當(dāng)用戶訪問登錄頁面時,會生成并顯示一個驗(yàn)證碼圖片。用戶可以點(diǎn)擊驗(yàn)證碼圖片來刷新驗(yàn)證碼。在提交登錄表單時,你可以在后端進(jìn)行相應(yīng)的驗(yàn)證碼驗(yàn)證邏輯,以確保用戶輸入的驗(yàn)證碼與生成的驗(yàn)證碼一致。
請確保你已正確安裝了相關(guān)依賴,并根據(jù)你的項(xiàng)目結(jié)構(gòu)和需求進(jìn)行相應(yīng)的路徑和配置調(diào)整。以上代碼只是一個示例,你可以根據(jù)實(shí)際情況進(jìn)行修改和擴(kuò)展。

擴(kuò)展

<dependency> 是 Maven 項(xiàng)目中用于管理依賴的標(biāo)簽。在這段代碼中,<dependency> 標(biāo)簽用于指定項(xiàng)目所依賴的庫(Artifact)的相關(guān)信息。
具體來說:
<groupId>:指定庫的 Group ID,即庫所屬的組織或者項(xiàng)目的標(biāo)識符。在這里,
nl.captcha 表示這個庫是由名為 “nl.captcha” 的組織提供。
<artifactId>:指定庫的 Artifact ID,即庫的唯一標(biāo)識符。在這里,
simplecaptcha 表示這個庫的名稱為 “simplecaptcha”。
<version>:指定庫的版本號。在這里,
1.2.2 表示使用的是 “simplecaptcha” 庫的版本 1.2.2。
通過在 Maven 項(xiàng)目的 pom.xml 文件中添加這段 <dependency> 代碼,你就可以告訴 Maven 構(gòu)建系統(tǒng),你的項(xiàng)目需要使用 “simplecaptcha” 庫,并且指定了具體的版本號。當(dāng)你構(gòu)建項(xiàng)目時,Maven 會自動下載并管理這個庫的相關(guān)依賴。
簡而言之,這段代碼的目的是在 Maven 項(xiàng)目中添加 “simplecaptcha” 庫作為項(xiàng)目的依賴,以便在代碼中使用該庫提供的功能。
SimpleCaptcha 是一個開源的 Java 庫,用于生成和驗(yàn)證圖像驗(yàn)證碼。它提供了一個簡單而靈活的方式來創(chuàng)建各種類型的驗(yàn)證碼,包括文本、數(shù)字、字母、數(shù)學(xué)等。
SimpleCaptcha 的主要特點(diǎn)和功能包括:
高度可定制化:SimpleCaptcha 允許你通過配置各種參數(shù)來定制生成的驗(yàn)證碼,例如驗(yàn)證碼的長度、字體樣式、字體顏色、背景樣式、干擾線等。你可以根據(jù)自己的需求創(chuàng)建符合你應(yīng)用程序風(fēng)格的驗(yàn)證碼。

多種驗(yàn)證碼類型:SimpleCaptcha 支持多種驗(yàn)證碼類型,包括文本驗(yàn)證碼、數(shù)字驗(yàn)證碼、字母驗(yàn)證碼、數(shù)學(xué)驗(yàn)證碼等。你可以選擇適合你應(yīng)用場景的驗(yàn)證碼類型。

高度可讀性:生成的驗(yàn)證碼圖像具有良好的可讀性,確保用戶能夠輕松辨認(rèn)驗(yàn)證碼。

防止自動化攻擊:通過添加干擾線、噪點(diǎn)等特征,SimpleCaptcha 增加了驗(yàn)證碼的復(fù)雜度,提高了驗(yàn)證碼的安全性,減少了自動化攻擊的風(fēng)險(xiǎn)。

簡單易用:SimpleCaptcha 提供了簡單的 API,使得在你的 Java 應(yīng)用程序中集成和使用驗(yàn)證碼變得非常容易。

可以使用 SimpleCaptcha 來為你的應(yīng)用程序添加驗(yàn)證碼功能,以增強(qiáng)用戶驗(yàn)證和安全性。它適用于各種場景,如用戶注冊、登錄、重置密碼、防止惡意攻擊等。

以上就是SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot+vue圖片驗(yàn)證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring集成Swagger常見錯誤及解決辦法

    Spring集成Swagger常見錯誤及解決辦法

    這篇文章主要介紹了Spring集成Swagger常見錯誤及解決辦法,幫助大家更好的理解和學(xué)習(xí)使用Spring,感興趣的朋友可以了解下
    2021-05-05
  • 簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別

    簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別

    這篇文章主要介紹了簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java繼承的概念及案例解析

    java繼承的概念及案例解析

    這篇文章主要介紹了java繼承的概念及案例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java開發(fā)中的23種設(shè)計(jì)模式詳解(推薦)

    Java開發(fā)中的23種設(shè)計(jì)模式詳解(推薦)

    本篇文章主要介紹了Java開發(fā)中的23種設(shè)計(jì)模式詳解,現(xiàn)在分享給大家,也給大家做個參考。感興趣的小伙伴們可以參考一下。 設(shè)計(jì)模式(Design Patterns)
    2016-11-11
  • Spring boot使用spring retry重試機(jī)制的方法示例

    Spring boot使用spring retry重試機(jī)制的方法示例

    這篇文章主要介紹了Spring boot使用spring retry重試機(jī)制的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • SpringBoot實(shí)現(xiàn)excel文件生成和下載

    SpringBoot實(shí)現(xiàn)excel文件生成和下載

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)excel文件生成和下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • 淺談Spring與SpringMVC父子容器的關(guān)系與初始化

    淺談Spring與SpringMVC父子容器的關(guān)系與初始化

    這篇文章主要介紹了淺談Spring與SpringMVC父子容器的關(guān)系與初始化,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBoot Admin的簡單使用的方法步驟

    SpringBoot Admin的簡單使用的方法步驟

    本文主要介紹了SpringBoot Admin的簡單使用的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Spring注解@Qualifier的使用&&與@Primary注解的不同

    Spring注解@Qualifier的使用&&與@Primary注解的不同

    今天帶你了解一下Spring框架中的@Qualifier?注解,它解決了哪些問題,以及如何使用它,我們還將了解它與?@Primary?注解的不同之處,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • JAVA實(shí)現(xiàn)連接本地打印機(jī)并打印文件的實(shí)現(xiàn)代碼

    JAVA實(shí)現(xiàn)連接本地打印機(jī)并打印文件的實(shí)現(xiàn)代碼

    這篇文章主要介紹了JAVA實(shí)現(xiàn)連接本地打印機(jī)并打印文件的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2019-10-10

最新評論

高青县| 大方县| 大足县| 永康市| 八宿县| 吉首市| 临泽县| 卢龙县| 玛曲县| 马边| 抚远县| 明星| 石林| 九台市| 千阳县| 江门市| 静海县| 道真| 蕲春县| 乐清市| 彭州市| 慈利县| 衢州市| 湖口县| 慈利县| 合肥市| 宣汉县| 岗巴县| 始兴县| 郸城县| 攀枝花市| 台北市| 寿阳县| 东乡| 油尖旺区| 正镶白旗| 巴彦县| 黄平县| 陇西县| 读书| 宁都县|